【发布时间】:2014-11-07 21:04:42
【问题描述】:
我正在使用 Action Bar 支持库 (appcompat v7),我的应用设置为 7 的最低 api,以及 21 的目标。
我有两个样式文件,一个是基础样式文件,一个是针对设备 api 11+ 的样式文件。
在运行 KitKat 的设备上运行应用程序时,android:actionBarStyle 似乎被忽略,将操作栏保留为默认样式 (@style/Widget.AppCompat.ActionBar.Solid),而不是应用给定的背景。
但如果我删除我的 v11 样式/将它们注释掉,KitKat 会侦听基本 styles.xml 文件中设置的 actionBarStyle 属性并设置我的自定义背景而不会出现任何问题。
所以我的问题是,我在 v11 样式上哪里出了问题?
据我了解,根据 android 文档,您应该使用 android: 前缀为运行 11+ 的设备提供其他样式,但这似乎对我不起作用。
精简,这是我的/res/values/styles.xml 文件:
<style name="My.Theme" parent="@style/Theme.AppCompat">
<item name="actionBarStyle">@style/ActionBar.Solid</item>
</style>
<style name="ActionBar.Solid" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="background">@drawable/ab_solid_</item>
</style>
这是我的/res/values-v11/styles.xml 文件:
<style name="My.Theme" parent="@style/Theme.AppCompat">
<item name="android:actionBarStyle">@style/ActionBar.Solid</item>
</style>
<style name="ActionBar.Solid" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="android:background">@drawable/ab_solid_</item>
</style>
如您所见,两者之间的唯一区别是使用了android: 前缀。
【问题讨论】:
标签: android xml android-styles android-appcompat