如何更改操作栏(Material Design)的背景颜色?

时间:2016-06-21 08:08:37

标签: android android-actionbar material-design

我希望我的Action Bar的背景值为@ color / colorPrimary(最后一项),但在我的应用中,操作栏采用的颜色与我的背景颜色相同。它们看起来都是1个元素。如何设置动作栏的样式(字体,背景......)?我不需要动态设置它,它将在整个活动中保持相同的颜色。

<resources>
    <style name="AppTheme" parent="android:Theme.Material">
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorPrimary">@color/colorPrimary</item>
        <item name="android:background">@color/background</item> **BACKGROUND**
        <item name="android:actionBarStyle">@color/colorPrimary</item> **ACTION BAR**
    </style>
</resources>

color.xml

<resources>
    <color name="colorPrimary">#E91E63</color>
    <color name="colorPrimaryDark">#880E4F</color>
    <color name="colorAccent">#E91E63</color>
    <color name="background">#FCE4EC</color>
</resources>

我的操作栏不会应用我想要的颜色。

3 个答案:

答案 0 :(得分:0)

试试这段代码

   <resources>
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
 <item name="android:statusBarColor">@color/colorPrimaryDark</item>
            <item name="colorPrimary">@color/color_primary</item>
            <item name="colorPrimaryDark">@color/color_primary_dark</item>
            <item name="colorAccent">@color/accent_color</item>
        </style>
    </resources>

来自Java:

requestWindowFeature(Window.FEATURE_ACTION_BAR);
    getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#1e8d93")));

答案 1 :(得分:0)

在您的应用主题中使用android:background不是一个好主意,因为这会将背景颜色应用于所有视图,包括操作栏。而是使用android:windowBackground来设置活动的窗口背景颜色。

答案 2 :(得分:0)

你可以设置它的颜色:

ActionBar ab = getSupportActionBar();

if(ab != null) {   
    ab.setBackgroundDrawable(new ColorDrawable(Color.RED));
}