La couleur de l'indicateur d'onglet est définie par un sélecteur drawable qui peut être trouvé aquí et ressemble à ceci :
<!-- AOSP copyright notice can be found at the above link -->
<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="@drawable/tab_unselected_holo" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_holo" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" />
<!-- Pressed -->
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" />
</selector>
Les objets à dessiner que le sélecteur utilise sont tous colorés en bleu clair. Vous pouvez remplacer ces éléments par vos propres versions recolorées. Les originaux ressemblent à ceci (les originaux sont petits, liens inclus) :
Vous voudrez copier le sélecteur ci-dessus dans votre propre projet, avec les objets à dessiner. Ensuite, vous devez recolorer les éléments à dessiner de la couleur de votre choix. Ensuite, vous voudrez définir votre sélecteur comme arrière-plan pour vos indicateurs de tabulation. Vous pouvez le faire comme suit (après avoir configuré vos onglets) :
TabHost host = (TabHost)view.findViewById(R.id.tab_host);
TabWidget widget = host.getTabWidget();
for(int i = 0; i < widget.getChildCount(); i++) {
View v = widget.getChildAt(i);
// Look for the title view to ensure this is an indicator and not a divider.
TextView tv = (TextView)v.findViewById(android.R.id.title);
if(tv == null) {
continue;
}
v.setBackgroundResource(R.drawable.your_tab_selector_drawable);
}
Il existe peut-être un moyen plus simple de le faire en définissant votre propre disposition d'indicateur de client avec un sélecteur d'arrière-plan, mais c'est ce qui a fonctionné le mieux pour moi.