3

ActionBar のすべてのタブに、タブ 1 は青、タブ 2 は赤など、さまざまな色のインジケーターを設定したいと考えています。

それを達成するために、すべての色に対して異なるセレクターを作成し、それらをドローアブルの異なる xml に配置しました。style.xml では、私はそれらを呼び出しています

<style name="MyTheme" parent="AppBaseTheme">
<item name="android:actionBarTabStyle">@style/ActionBarTabStyleRed</item>
</style>
<style name="ActionBarTabStyleRed">
<item name="android:background">@drawable/tab_indicator_red</item>
</style>

私は別の色にもそのスタイルを作成しました。ドローアブルまたはスタイルを別の色に変更すると、機能します。タブに色が適用されているのがわかります。しかし、すべてのタブが同じ色であるため、私の目的は解決しませんでした。タブのスタイルを設定しようとしましonTabSelected()たが、それを行う方法がありません。

最終的に、色ごとに異なるテーマを作成してプログラムで設定しようとしましたonTabSelected()が、テーマは の前に設定する必要があることがわかりましたsetContentView()
だから私の質問は..どうすればそれを行うことができますか? タブインジケーターごとに異なる色を使用する方法はありますか???

更新:-
drawable/tab_indicator_red.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_red" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_red" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_red" />

    <!-- Pressed -->
    <!--    Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_red" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_red" />

    <!--    Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_red" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_red" />
</selector>
4

1 に答える 1