样式ActionBar选项卡

时间:2014-04-27 00:15:53

标签: android tabs android-styles

我试图更改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>

无论我在顶级样式定义中使用什么样的父样式,我都会收到错误消息&#34;找不到与给定名称匹配的资源:attr&#39; actionBarTabStyle&#39;&#34;。另外,我告诉我们这个符号&#34; PropertyApp.ActionBar.Tab&#34;无法解决。

1 个答案:

答案 0 :(得分:2)

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

您需要将其置于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