2

我有我的Android應用在這裏面style.xml:程序兼容性動作條背景顏色

<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> 
<style name="OrangeTheme" parent="@style/Theme.AppCompat"> 
    <item name="android:actionBarStyle" tools:ignore="NewApi">@style/OrangeTheme.OrangeActionBar</item> 
    <item name="android:windowActionBar">true</item> 
</style> 

<style name="OrangeTheme.OrangeActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="android:background">@color/orange</item> 
    <item name="background">@color/orange</item> 
    <item name="android:backgroundStacked">@color/orange</item> 
    <item name="android:backgroundSplit">@color/orange</item> 
    <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/black</item> 
</style> 

我尋覓的StackOverflow和谷歌,但沒有任何幫助。我無法改變背景顏色。

裏面我MainActivity,我用這個代碼:

public void restoreActionBar() { 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setTitle(mTitle); 
} 

我儘量不使用程序兼容性,但後來我的名字有很多錯誤。它延伸到ActionBarActivity。如果我將其更改爲FragmentActivity我不能使用getSupportActionBar(),如果沒有它,我的getActionBar()始終是null

minSdkVersion 19 
targetSdkVersion 21 

所以現在我無法改變它。我嘗試重命名我的風格主題的父母。我嘗試使用andrioud:backgroundbackground。唯一改變的是當我使用另一個父母,如 Theme.App.Compat.LightTheme.AppCompat.Light.DarkActionBar

有人有一個想法,我怎麼能夠在運行時改變顏色和其他東西?

+0

希望這有助於! http://stackoverflow.com/questions/23155637/change-background-color-of-the-action-bar-using-appcompat – Neha 2014-12-04 09:19:41

+0

已經嘗試過那些,沒有工作 – K213 2014-12-04 09:51:16

回答

0

使用新的AppCompat-v7(v21),您可以使用新的顏色主題屬性。見here

或者您必須使用<item name="actionBarStyle">財產(無前綴android)。

0

要使用AppCompat的背景色,還需要定義不帶android:屬性的項目名稱。

例如:

<style name="MyActionBar" parent="Theme.AppCompat.Light"> 
    <item name="android:background">@color/action_bar_background</item> 

    <item name="background">@color/action_bar_background</item> //<--background item without the android attribute 
</style> 

,然後在您的自定義主題做同樣的事情自定義動作條的風格:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <!-- Customize your theme here. --> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style>