2014-01-08 169 views
1

我將一個ActionBar放到我的應用程序中,並更改了背景顏色,如下所示。奇怪的是,ActionBar文本背後的顏色不會改變。 (pictureActionBar文本的背景顏色不變

我環顧四周,發現這一點: <item name="android:actionBarItemBackground">@null</item>

但我寧願因爲那時我minSdk必須被設置爲14,而我在11有它現在不使用它。我曾嘗試將其提高到14以查看此標籤是否可行,但我再次無法改變顏色。

有沒有人有這方面的經驗?非常感謝您的幫助。

Styles.xml:

<style name="AppBaseTheme" parent="Theme.AppCompat"> 
</style> 

<!-- Application theme. --> 
<style name="MyAppTheme" parent="AppBaseTheme"> 
    <item name="android:colorBackground">@color/background</item> 
    <item name="android:background">@color/background</item> 
    <item name="android:textColor">@color/myWhite</item> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 

<!-- ActionBar styles --> 
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="android:background">@drawable/actionbar_background</item> 
    <item name="actionMenuTextColor">@color/myWhite</item> 
    <!--Support Library compatibility--> 
    <item name="background">@color/myBlack</item> 
</style> 

抽拉/ actionbar_background

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@color/myBlack" /> 
</shape> 

菜單/ login.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
     <item android:id="@+id/action_search" 
     android:title="@string/action_search" 
     android:showAsAction="ifRoom" /> 

     <item android:id="@+id/action_settings" 
     android:title="@string/settings_label" 
     android:showAsAction="never" /> 
</menu> 

最後,LoginActivity類裏面,onCreateOptionsMenu方法

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.login, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

再次感謝!

+0

我有一個類似的問題,只是我的是我已經在主題標籤中設置樣式,當試圖以編程方式更改背景時,我總是遇到與您的問題相同的問題。 –

回答

2

我想通了。原來我使用了錯誤的屬性 - 而不是在styles.xml文件中使用android:background,你需要使用android:windowBackground。 android:background也會改變各種其他的東西。