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>