使用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:background
和background
项目。 前者是针对本机支持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"