【问题标题】:Styling ActionBar Tabs样式化操作栏选项卡
【发布时间】:2014-04-27 00:15:52
【问题描述】:

我正在尝试更改我的 ActionBar 选项卡上的颜色以匹配我的应用程序中使用的颜色。我一直在关注这里的博文:http://blog.alwold.com/2013/08/28/styling-tabs-in-the-android-action-bar/,这非常有帮助。但是,在步骤 1 中设置主题时,我找不到父属性的正确值。该网站列出了“Theme.Sherlock”,但我没有使用 ActionBarSherlock,因此不适用。

我的 XML 如下:

<style name="PropertyApp" parent="@style/Widget.Holo.ActionBar.TabView">
    <item name="android:actionBarTabStyle">@style/PropertyApp.ActionBar.Tab</item>
    <item name="actionBarTabStyle">@style/FindMyTrain.ActionBar.Tab</item>
</style>

<style name="PropertyApp.ActionBar.Tab">
    <item name="android:background">@drawable/tab_bar_background</item>
</style>

无论我在顶级样式定义中为父样式使用什么,我都会收到错误消息“找不到与给定名称匹配的资源:attr 'actionBarTabStyle'”。另外,我被告知无法解析符号“PropertyApp.ActionBar.Tab”。

【问题讨论】:

    标签: android tabs android-styles


    【解决方案1】:

    您的问题是您正在为主要的 PropertyApp 样式指定 Widget.Holo.ActionBar.TabView 父样式。

    您需要将其放入您的PropertyApp.ActionBar.Tab 样式中。

    然后把 PropertyApp 的主父主题放在 Theme.Holo 之类的地方。

    <style name="PropertyApp" parent="android:style/Theme.Holo">
        <item name="android:actionBarTabStyle">@style/PropertyApp.ActionBar.Tab</item>
    </style>
    
    <style name="PropertyApp.ActionBar.Tab" parent="android:style/Widget.Holo.ActionBar.TabView">
        <item name="android:background">@drawable/tab_bar_background</item>
    </style>
    

    父样式的命名还取决于您所针对的 API 级别。例如,如果您正在使用 AppCompat。

    您可以参考documentation更改标签背景。

    【讨论】:

    • 感谢您的编辑,它使您的答案更加清晰。谢谢。
    • @MrWizard54 是的对不起哈哈,我之前说的有点不对。另外,我让它变得比它需要的更复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多