2017-09-11 2 views
0

J'essaie de définir une couleur personnalisée pour le texte de l'onglet dans l'une de mes applications Android, mais changez plutôt sa couleur blanche de réglage. Le texte de l'autre onglet est modifié mais ne change pas uniquement pour l'onglet sélectionné.Barre d'outils Onglet sélectionné Couleur du texte Android

Mon style de Tab est comme ci-dessous

<style name="MineCustomTabText" 
     parent="TextAppearance.Design.Tab"> 
     <item name="tabSelectedTextColor">#000</item> 
     <item name="android:textColor">@color/TextColorLite</item> 
     <item name="android:textSize">@dimen/textPageCount</item> 
    </style> 

Je l'utilise dans mon XML mise en page est comme ci-dessous

<android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      app:tabGravity="fill" 
      app:tabTextAppearance="@style/MineCustomTabText" 
      app:tabMode="fixed" 
      android:layout_height="wrap_content" /> 

Vous pouvez voir que j'ai définir la couleur noire pour l'onglet sélectionné dans le style, mais il montre seulement la couleur blanche. Dites-moi ce que je manque. Merci

Répondre

2

Essayez ce code suivant:

Ajouter ce style dans votre TabLayout

<android.support.design.widget.TabLayout 
    style="@style/MyCustomTabLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

Ajouter ce style dans votre Style.xml

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> 
     <!--<item name="tabMaxWidth">@dimen/tab_max_width</item>--> 
     <item name="tabIndicatorColor">@color/appcolor</item> 
     <item name="tabIndicatorHeight">2dp</item> 
     <item name="tabPaddingStart">10dp</item> 
     <item name="tabPaddingEnd">10dp</item> 
     <item name="tabBackground">@color/lightblue</item> 
     <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item> 
     <item name="tabSelectedTextColor">@color/appcolor</item> 
    </style> 


    <style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab"> 
     <item name="android:textSize">15sp</item> 
     <item name="android:textColor">@color/black</item> 
     <item name="textAllCaps">true</item> 
    </style> 

Une autre façon de changer programme:

tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FF0000")); 
    tabLayout.setSelectedTabIndicatorHeight((int) (5 * getResources().getDisplayMetrics().density)); 
    tabLayout.setTabTextColors(Color.parseColor("#727272"), Color.parseColor("#ffffff")); 

J'espère que cela vous aidera

+0

@Priya Ajoutez votre style comme cette 'style =" @ style/MineCustomTabText "' dans votre tablayout. –

+0

Merci son travail bien – Priya

0

Ajouter tab_text_color.xml dans le dossier drawable comme ci-dessous

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_selected="true" 
     android:color="@color/text_tab_selected" /> 
    <item 
     android:state_selected="false" 
     android:color="@color/text_tab_unselected" /> 
</selector> 

puis à style.xml faire et vérifier

<style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium"> 
    <item name="android:textColor">@drawable/tab_text_color</item> 
    ... 
</style>