2015-06-18 16 views
8

Sto provando a modificare le schede in un android.support.design.widget.TabLayout Non riesco a cambiare il colore della scheda selezionato, è sempre impostato su textColorPrimary nel tema dell'app, ma ho bisogno che siano diversi colori.Impossibile modificare il colore del testo attivo su TabLayout

Ho provato a impostare valori in styles.xml che si applica a TabLayout, ma ho letto che non è possibile cambiare il colore del testo della scheda attiva in questo modo, sebbene io possa cambiare i colori del testo della scheda non selezionati. Ho anche provato:

tabLayout.setTabTextColors(getResources().getColorStateList(R.color.selector)); 

e

tabLayout.setTabTextColors(R.color.Green, R.color.Blue); 

E 'possibile sostituire il colore scheda testo selezionato?

+0

Questa risposta è Cosa stai cercando https://stackoverflow.com/a/31471430/2163045 – murt

risposta

14

Edit: ha ottenuto che funziona,

tabLayout.setTabTextColors(getResources().getColorStateList(R.color.selector)); 

necessari chiamato prima di essere attaccato al cercapersone vista

+0

Funziona per te nella v23.0.1 del supporto design lib? – AllDayAmazing

+0

Stavo cercando di usare android: textColor = "@ color/tab_text_color_selector" nel file TabLayout xml, ma dovevo usare la tua strada con il design v23.1.1. Non so perché sia ​​così! : -/Continuerò a guardare il mio codice, ma questo è il trucco. FWIW: getResources (...) non è deprecato. –

11

In realtà è possibile personalizzare il colore attivo scheda di testo tramite la definizione personalizzato TabLayout stile. Guarda il parametro tabSelectedTextColor. Ecco esempio di personalizzazione tabSelectedTextColor, tabIndicatorColor, tabTextAppearance (la dimensione del testo/colore ecc):

<android.support.design.widget.TabLayout 
    android:id="@+id/tabLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="@style/CustomTabLayoutStyle"/> 

Stili:

<style name="CustomTabLayoutStyle" parent="Base.Widget.Design.TabLayout"> 
    <item name="tabSelectedTextColor">@color/tab_text_selected</item> 
    <item name="tabIndicatorColor">@color/tab_indicator</item> 
    <item name="tabTextAppearance">@style/CustomTabTexStyle</item> 
</style> 

<style name="CustomTabTexStyle" parent="TextAppearance.Design.Tab"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:textColor">@color/tab_text</item> 
    <item name="textAllCaps">false</item> 
    ... 
</style> 
+0

soluzione perfetta la sua griglia di lavoro –

+0

nota .. deve essere 'stile', non funzionerà con' android: theme' – tarrball

8

Aggiungi al di sotto codice al tuo xml:

app:tabSelectedTextColor="@color/app_color" 
Problemi correlati