所以我是应用程序开发新手,目前正在遵循 android.com 上的开发人员指南。我陷入了“风格化你的actionBar”部分,因为网站上建议的代码不起作用:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
</resources>
我收到有关 android:backgound 的兼容性错误,因为我的 minSdk 是 7,所以无法使用该错误(尽管指南声称它应该可以工作)。 我不想改变我的minSdk,我尝试将themes.xml 分成2 个,一个放入values,另一个放入values-v11。该错误不再发生,但是当我运行应用程序时,actionBar 不会更改其背景。这是两个文件:
这个是值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
</resources>
这个位于values-11
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">#FFB300</item>
</style>
</resources>
你知道这里出了什么问题吗?
我的设备上的 API 等级是 21
最佳答案
截至AppCompat v21 ,不再使用 android:
属性。它还支持color theming ,它提供了一种使用非常简单的主题设置操作栏(以及 Android 5.0 设备上的状态栏)颜色的非常简单的方法:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">@color/my_awesome_color</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/my_awesome_darker_color</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">@color/accent</item>
<!-- You can also set colorControlNormal, colorControlActivated
colorControlHighlight & colorSwitchThumbNormal. -->
</style>
关于android - actionBar背景没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26451555/