【问题标题】:Android Action bar won't obey background colorAndroid 操作栏不会服从背景颜色
【发布时间】:2015-08-18 03:23:02
【问题描述】:

我刚刚将我的项目更新为以 API 22 为目标,我的操作栏样式似乎已损坏。尽管将背景设置为白色,颜色设置为蓝色,但我最终还是得到了一个带有白色文本的黑色操作栏。

这是我的应用程序主题。

<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:homeAsUpIndicator">@drawable/up_button</item>
    <item name="android:actionMenuTextAppearance">@style/H4.Other</item>
    <item name="android:actionMenuTextColor">@color/h4_other</item>
    <item name="android:windowContentOverlay">@drawable/header_shadow</item>
    <item name="android:buttonStyle">@style/ButtonStyle.NoCaps</item>
</style>

这是我的操作栏样式。

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:title">""</item>
    <item name="android:background">@color/white</item>
    <item name="android:height">@dimen/action_bar_height</item>
    <item name="android:titleTextStyle">@style/H5.Blue</item>
</style>

【问题讨论】:

  • 你的模拟器安卓版本是多少?如果低于 21,请尝试使用 &lt;item name="background"&gt;@color/white&lt;/item&gt;
  • @tufan,你确定吗?如果我想使用 appcompat 版本的材料主题,我以为你不需要 v14 中的任何属性?
  • 检查我的答案...它会帮助你
  • Amir 是对的,使用没有 android: 命名空间的属性解决了这个问题。

标签: android android-layout android-styles android-actionbar-compat


【解决方案1】:

仅支持 Android 3.0 及更高版本时,您可以像这样定义操作栏的背景:

res/values/themes.xml

<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
       parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
       parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/white</item>
</style>
</resources>

然后将您的主题应用到您的整个应用或单个活动:

<application android:theme="@style/CustomActionBarTheme" ... />

阅读Android Documentation

【讨论】:

    【解决方案2】:

    好的,我想通了。当你更新了你正在使用的应用兼容库的版本时,一些属性的命名空间需要改变。就我而言,它正在从 android:background 更改为仅背景等等。

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多