2015-06-18 16 views
8

Próbuję układać tabulatory w android.support.design.widget.TabLayout Nie mogę zmienić koloru wybranej karty, zawsze jest ustawiona na textColorPrimary w mojej kompozycji aplikacji, ale potrzebuję, aby były w różnych kolorach.Nie można zmienić aktywnego koloru tekstu na TabLayout

Próbowałem ustawić wartości w styles.xml, które dotyczy TabLayout, ale czytam, nie można zmienić kolor tekstu aktywnej karty w ten sposób, choć mogę zmienić niezaznaczone kolory tabulatora tekstu. Próbowałem również:

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

i

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

to możliwe, aby zastąpić wybrany kolor tekstu zakładka?

+0

Ta odpowiedź jest co szukasz https://stackoverflow.com/a/31471430/2163045 – murt

Odpowiedz

14

Edit: ale to działa,

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

potrzebne nazywa zanim został on dołączony do widoku pager

+0

Czy to działa dla ciebie w v23.0.1 wsparcia projektować lib? – AllDayAmazing

+0

Próbowałem użyć android: textColor = "@ color/tab_text_color_selector" w Xml TabLayout, ale musiałem użyć twojej drogi z projektem v23.1.1. Nie wiem, dlaczego tak się dzieje! : -/Wciąż będę patrzył na mój kod, ale to działa. FWIW: getResources (...) nie jest przestarzałe. –

11

Właściwie można dostosować kolor tekstu aktywnej zakładce poprzez definiowanie niestandardowych TabLayout styl. Spójrz na parametr tabSelectedTextColor. Oto przykład dostosowywania tabSelectedTextColor, tabIndicatorColor, tabTextAppearance (rozmiar tekstu/kolor itp):

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

style:

<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

idealne rozwiązanie krata robocza –

+0

uwaga .. musi być "styl", nie będzie działać z 'Android: motywem' – tarrball

8

Dodaj poniżej kodu do xml:

app:tabSelectedTextColor="@color/app_color" 
Powiązane problemy