Стилизация вкладок панели действий

Я пытаюсь изменить цвета на вкладках 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" не может быть разрешен.


person MrWizard54    schedule 27.04.2014    source источник


Ответы (1)


Ваша проблема в том, что вы указываете родительский стиль 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, например, если вы его используете.

Вы можете обратиться к документации по изменению фона вкладок.

person singularhum    schedule 27.04.2014
comment
Я ценю правки, они делают ваш ответ еще более ясным. Спасибо. - person MrWizard54; 27.04.2014
comment
@MrWizard54, да, извини, ха-ха, я ошибся в том, что сказал раньше. Кроме того, я сделал это более сложным, чем это должно было быть. - person singularhum; 28.04.2014