我正在努力设计ActionBar的样式。我的应用程序有一个带有三个选项卡的ActionBar。我试图让选中的选项卡具有背景颜色,而未选中的选项卡则显示不同的颜色。我关注的是这个引用:Customizing Action Bar。但所有选项卡都显示选定的颜色。
我的styles.xml
文件如下:
<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar">
<item name="android:background">@drawable/tab_background</item>
<item name="android:paddingLeft">32dp</item>
<item name="android:paddingRight">32dp</item>
</style>
<style name="MyActionBarTabBarStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar">
<item name="android:background">@drawable/red</item>
</style>
<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar.Light</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionBarTabBarStyle">@style/MyActionBarTabBarStyle</item>
</style>
tab_background只是一个9补丁。我也不确定我是否从正确的父级(parent="android:style/Widget.Holo.Light.ActionBar.TabBar
)继承了动作栏标签。我浏览了所有的参考资料,发现很难理解样式的层次结构
为什么我的选项卡不会显示选中或没有?提前感谢您的帮助。
发布于 2012-11-08 19:22:58
我解决了我的问题。我最初没有使用State List Drawables。我直接使用背景图像,而不是通过StateListDrawable。使用StateListDrawable,您可以根据标签是否被选中来设置不同的背景。
所以我添加了文件tab_background_select.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/tab_background" />
</selector>
我从我的styles.xml
中引用了这个
<item name="android:background">@drawable/tab_background_select</item>
https://stackoverflow.com/questions/13285490
复制相似问题