android - 如何设置 ActionBar 的样式,选定选项卡上的选项卡背景

标签 android android-actionbar android-tabs android-styles

我正在努力设计 ActionBar 的样式。我的应用程序有一个带有三个选项卡的 ActionBar。我试图让选定的选项卡具有背景颜色,而未选定的选项卡显示不同的颜色。我正在关注这个引用:Customizing Action Bar .但是所有的 TAB 都显示为 Selected 颜色。

我的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) 继承了操作栏选项卡。我已经看过了引用并发现很难理解样式层次结构

为什么我的标签不显示选中或不显示?提前感谢您的帮助。

最佳答案

我解决了我的问题。我最初没有使用 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>

关于android - 如何设置 ActionBar 的样式,选定选项卡上的选项卡背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285490/

相关文章:

Android : TabActivity or Fragment? 什么时候用Tabs,什么时候用Fragments?

Android native 代码堆栈与 Dalvik VM/ART 堆栈

android - 带有操作栏的 requestFeature

android - 如何像gmail一样更改操作栏

java - 在我的 Android 应用程序中集成 PagerSlidingTabStrip 时出错

android - 如何使用 Tab Navigation 为早期 SDK 创建 Android Activity?

android - PhoneGap 在后台上传数据

Android位置提醒项目

android - 在 android studio 中创建项目时出现这个错误是什么我无法理解

android - 使用 ActionBarSherlock 跨 fragment 使用一个通用按钮