我在网上发现了一些关于这个问题的问题。不幸的是,到目前为止,我所尝试的一切都没有成功。
标题是否说,我需要更改操作栏的背景颜色。
该项目的最小sdk为9,最大sdk为19。
我在res / values文件夹中创建了一个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>
colors.xml存储在res / values
中<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>
答案 0 :(得分:117)
<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
更改操作栏背景颜色,将其添加到ActionBarTheme,两种颜色不同或不起作用(感谢@Dre
和@lagoman
)
<item name="colorPrimary">@color/my_awesome_red</item>
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>
答案 1 :(得分:19)
试试这个:
<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>
答案 2 :(得分:9)
试试这个。
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary"> #6699FF </item>
</style>
您可以根据您的选择更改#6699FF
颜色(或使用颜色资源)。
答案 3 :(得分:1)
尝试使用
parent="Theme.AppCompat.Light"
而不是
parent="@style/Theme.AppCompat.Light"