Подтвердить что ты не робот

Как создать ActionBar, фон вкладки на выбранной вкладке

Я борется с дизайном ActionBar. В моем приложении есть ActionBar с тремя вкладками. Я пытаюсь, чтобы выбранная вкладка имела цвет фона, а невыделенные вкладки отображали другой цвет. Я следую этой ссылке: Пользовательская панель действий. Но все TAB отображают выбранный цвет.

Мой 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). Я просмотрел ссылки и очень трудно понять иерархию стилей.

Почему не отображаются мои вкладки или нет? Заранее благодарим за помощь.

4b9b3361

Ответ 1

Я решил свою проблему. Вначале я не использовал 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>