使用AppCompat更改操作栏的背景颜色

我在网上发现了一些关于这个问题的问题。 不幸的是,我到目前为止所做的一切都是失败的。

有标题说,我需要改变我的行动栏的背景颜色。

该项目有9分钟的最低Sdk和19分钟的最高Sdk。

我在我的res / values文件夹中创build了一个xml文件:

red_actionbar.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light"> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/red</item> </style> </resources> 

存储在res / values中的colors.xml

 <resources> <color name="red">#FF0000</color> </resources> 

和我改变主题的部分清单

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/CustomActionBarTheme" > 

但没有任何变化。 哪里有问题? 应用程序接受代码,因为如果我改变了这个:

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

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

它改变了我的应用程序的主题,所以问题在于风格,但我不知道如何解决它。

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background" tools:ignore="NewApi">@color/red</item> <item name="background">@color/red</item> </style> </resources> 
 <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background" tools:ignore="NewApi">@color/red</item> <item name="background">@color/red</item> </style> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item> <item name="actionBarStyle">@style/MyActionBar</item> </style> 

你需要android:backgroundbackground项目。 前者是针对本机支持ActionBar的更新版本的Android。 后者是旧的Android版本。

编辑

而不是<resources>使用

 <resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> 

从SDK 21

要更改Action Bar背景颜色,将其添加到ActionBarTheme中,两种颜色将会不同或者不起作用(感谢@Dre@lagoman

 <item name="colorPrimary">@color/my_awesome_red</item> <item name="colorPrimaryDark">@color/my_awesome_darker_red</item> 

尝试这个:

 <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="android:background">@color/red</item> <item name="background">@color/red</item> </style> 

尝试这个。

 <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary"> #6699FF </item> </style> 

您可以根据您的select更改#6699FF颜色(或使用颜色资源)。

尝试使用

 parent="Theme.AppCompat.Light" 

代替

 parent="@style/Theme.AppCompat.Light"