Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改动作栏的背景颜色(材质设计)?_Android_Android Actionbar_Material Design - Fatal编程技术网

Android 如何更改动作栏的背景颜色(材质设计)?

Android 如何更改动作栏的背景颜色(材质设计)?,android,android-actionbar,material-design,Android,Android Actionbar,Material Design,我希望我的操作栏有一个值为@color/colorPrimary(最后一项)的背景,但在我的应用程序中,操作栏的颜色与我的背景相同。看起来它们都是1个元素。如何设置动作栏的样式(字体、背景等)?我将不必动态地设计它,它将在整个活动中保持相同的颜色 <resources> <style name="AppTheme" parent="android:Theme.Material"> <item name="android:colorPrimar

我希望我的操作栏有一个值为@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>

#E91E63
#880E4F
#E91E63
#FCE4EC

我的操作栏没有应用我想要的颜色。

试试这段代码

   <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>

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

您可以如下设置其颜色:

<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>
ActionBar ab = getSupportActionBar();

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

ActionBar将colorPrimary作为其颜色转到
color.xml
并更改
colorPrimary
或更改
样式。xml
我已经完成了您的两个建议,它不起作用…好吧,我实际上想应用材质主题,而不是应用程序one@Helenesh,请尝试此-getActionBar().setBackgroundDrawable(新的ColorDrawable(Color.parseColor(#1e8d93”);是的,即使使用您的代码,我的操作栏的背景色也不会改变(我想给colorPrimary上色)。如果您愿意,请随时查看我在Github上的代码尝试从代码设置Actionbar并设置BG…检查代码我找到了解决方案:@color/colorPrimaryDark我想知道为什么人们会给我负面评价,因为这是一个非常有用的问题,供以后参考!我在对材料设计进行了大量研究后找到了解决方案;-)谢谢你的帮助,Sreekanth!