更改 Android 5.0 操作栏颜色

Posted

技术标签:

【中文标题】更改 Android 5.0 操作栏颜色【英文标题】:Change Android 5.0 Actionbar color 【发布时间】:2014-12-16 03:43:12 【问题描述】:

我正在使用新的 Lollipop Material Design 指南,并希望将漂亮的导航抽屉动画合并到我的应用程序中。通过使用 android.support.v7.app.ActionBarDrawerToggle,我已经做到了这一点,但现在我很难更改所述操作栏的颜色。无论我将主题设置为什么,它都会保持亮灰色。如何改变操作栏的颜色?这是我的应用主题的样子:

//res/values/styles.xml
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="android:colorPrimary">@color/primaryDef</item>
    <item name="android:colorPrimaryDark">@color/primaryDarkDef</item>
    <item name="android:activatedBackgroundIndicator">@drawable/defbg</item>
    <item name="android:colorAccent">@color/primaryDef</item>
    <item name="android:navigationBarColor">@color/primaryDarkDef</item>

</style>

<style name="ActionBar" parent="android:Widget.ActionBar">
    <item name="android:background">@color/primaryDef</item>
</style>

【问题讨论】:

【参考方案1】:

AppCompat 不使用 android: 前缀属性为 Material Theme color palette 项目每个 migration guide to v21 by the author of AppCompat。相反,只需使用名称本身:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

    <item name="colorPrimary">@color/primaryDef</item>
    <item name="colorPrimaryDark">@color/primaryDarkDef</item>
    <item name="colorAccent">@color/primaryDef</item>

    <item name="android:navigationBarColor">@color/primaryDarkDef</item>
    <item name="android:activatedBackgroundIndicator">@drawable/defbg</item>
</style>

操作栏将由colorPrimary 着色。

【讨论】:

但是我的FAB,通常与colorPrimary匹配,是黑色的,而它应该是蓝色的...... 这在几天前可以使用,但是在我昨天左右更新了 appcompat 支持库后(到 21.0.1 版),它突然不适用于 Android 5.0。对于 L 之前的版本,actoinbar 显示为 colorPrimary 定义,但在 Android 5.0 上,它始终是透明的。你面临这个(问题)吗? @Qianqian - 21.0.1 没有对 AppCompat 进行任何更改(仅添加了 Multidex 库),因此如果它与 21.0.0 一起使用,那是您更改的其他内容。 @ianhanniballake,非常感谢您的回答。我刚刚发现我遇到了问题,因为我重新定义了操作栏样式以删除 v21 的高度...

以上是关于更改 Android 5.0 操作栏颜色的主要内容,如果未能解决你的问题,请参考以下文章

android 5.0的颜色

android 5.0的颜色

Android - 无法更改操作栏文本颜色

如何在 Android 4.2 中更改操作栏选项菜单的背景颜色?

应用程序如何检测状态栏颜色(Android 5.0 Lollipop)?

更改操作栏searchview提示文本颜色