ActionBar文本背景颜色不变

时间:2014-01-08 09:20:58

标签: java android xml

我将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>

抽拉/ 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);
}

再次感谢!

1 个答案:

答案 0 :(得分:2)

我明白了。结果我使用了错误的属性 - 而不是在styles.xml文件中使用android:background,你需要使用android:windowBackground。 android:background也改变了各种其他的东西。