更改Android 5.0操作栏颜色

9

我正在使用新的棒棒糖材料设计指南,并希望在我的应用程序中加入漂亮的导航抽屉动画。通过使用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个回答

25

AppCompat不使用以android:为前缀的属性来表示Material Theme颜色调色板项目,根据AppCompat作者的v21迁移指南。取而代之的是,只需使用名称本身:

<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颜色匹配,但它是黑色的,而应该是蓝色的... - Plays2
这个在几天前还是好用的,但是昨天我更新了appcompat支持库(版本为21.0.1)之后,它突然在Android 5.0上不能用了。在Android 5.0之前的版本中,ActionBar显示为colorPrimary定义的颜色,但是在Android 5.0上却总是透明的。你是否也遇到了这个问题? - Qianqian
@Qianqian - 21.0.1版本没有改变任何与AppCompat相关的内容(只是添加了Multidex库),所以如果它在21.0.0版本中可以工作,那么你改变的应该是其他东西。 - ianhanniballake
@ianhanniballake,非常感谢您的回答。我刚刚发现问题是因为我重新定义了操作栏样式以删除v21的高程度。 - Qianqian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接