操作栏颜色不会随AppCompat v7:21而改变

时间:2015-01-23 02:43:51

标签: android android-actionbar android-appcompat

目前我正在尝试在AppCompat v7:21上为Action Bar设置自定义背景颜色。我已经尝试了很多可能性,直到现在我还无法弄清楚发生了什么。

这是我的res/values/styles.xml

<resources>

    <color name="action_bar">#000</color>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <!-- Customize your theme here. -->
        <item name="actionBarStyle">@style/MyActionBar</item>

    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar" parent="Widget.AppCompat.Light.ActionBar">
        <item name="android:background">@color/action_bar</item>

    </style>

</resources>

1 个答案:

答案 0 :(得分:4)

我已经想通了!事实上,很多UI的东西都在API 21上发生了变化,AppCompat v7也是如此。你可以设置 动作栏颜色(以及其他)如下:

<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/material_blue_500</item>
    <item name="colorPrimaryDark">@color/material_blue_700</item>
    <item name="colorAccent">@color/material_green_A200</item>
</style>

color*键定义相关视图的颜色,提供在Lollipop上观察到的视觉一致性,即:不可能(从我的试验和错误中检查),在使用AppCompat v7时单独设置这些颜色,就像我一样我试图这样做。

Obs。:我已经尝试过几小时前在<style> parent="Widget.AppCompat.Light.ActionBar"上使用它们,而<style>并不起作用。它们必须放在&#34; root&#34; {{1}}元素。正是这种错误让我写下了这个。

对不起我的英语技能。