我将一个ActionBar放入我的应用程序中,并更改了背景颜色,如下所示。奇怪的是,ActionBar上文字的颜色不会改变。 (picture)
我环顾四周,发现了这一点:<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>
drawable / actionbar_background:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/myBlack" />
</shape>
menu / 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);
}
再次感谢!
最佳答案
我想到了。原来我使用了错误的属性-您需要使用android:windowBackground而不是在styles.xml文件中使用android:background。 android:background也改变了其他各种东西。
关于java - ActionBar文本的背景颜色不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20991410/