Вкладка Темы для Android

Я хочу настроить свою вкладку следующим образом пользовательский стиль вкладки

т.е. выбранная вкладка будет иметь белый фон, а невыбранная вкладка будет иметь зеленый фон.

До сих пор я могу добиться

что я сделал

чтобы добиться этого, я делаю следующее как мой стиль:

<resources>
    <style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/sa_green</item>
        <item name="android:backgroundStacked">@color/stacked_green</item>
        <item name="android:backgroundSplit">@color/sa_green</item>
    </style>

    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/ActionBar</item>
    </style>
</resources>

color.xml

<resources>
    <color name="sa_green">#14a804</color>
    <color name="stacked_green">#118504</color>
    <color name="accent_green">#97e08f</color>
</resources>

Как убрать синий индикатор и поменять фон на основе какой вкладки выбран?

1 ответ

Решение

Вам нужен селектор xml, а не просто @color/sa_green. Селектор сообщит вкладке, в зависимости от ее состояния, какой цвет использовать.

Вы можете пойти так просто:

рисуем /tab_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false"
      android:background="@color/green" />
    <item android:state_pressed="true"
      android:drawable="@color/white" />
</selector>

Тогда вам просто нужно поставить

<item name="android:actionBarTabStyle">@style/ActionBar</item>

в твоей теме

И объявите в своем стиле ActionBar, что-то вроде этого:

<style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
    <item name="android:background">@drawable/tab_selector</item>
</style>

И это должно быть

Другие вопросы по тегам