我正在使用操作栏支持库(appcompat v7),我的应用设置为api的最小值为7,目标值为21。
我有两个样式文件,一个是基本样式文件,另一个是针对设备api 11+的文件。
在运行KitKat的设备上运行应用程序时,似乎android:actionBarStyle
被忽略了,将动作栏设置为默认样式(@ style / Widget.AppCompat.ActionBar.Solid),而不是应用给定的背景。
但是,如果我删除v11样式/对其进行注释,KitKat会侦听actionBarStyle
基本styles.xml文件中设置的属性,并设置我的自定义背景而不会出现任何问题。
所以我的问题是,我的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:
前缀的使用。
根据官方文档,使用新的AppCompat-v21,您可以在以下位置删除所有值-v14 + Action Bar样式并仅使用一个主题声明values
:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- Set AppCompat’s actionBarStyle -->
<item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句