как изменить цвет текста индикатора вкладки в android?

Как изменить цвет текстового индикатора вкладки? я могу изменить значок, используя тег селектора, ссылающийся на пример. но не могу к цвету текста. как?

5 ответов


стиль в вашей пользовательской теме изменить

<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 

и

<style name="Widget.TabWidget">
        <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:singleLine">true</item>
</style>  


<style name="TextAppearance.Widget.TabWidget">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textColor">@android:color/tab_indicator_text</item>
</style>     

вот новый ответ, который я нашел у Фреда Гротта (http://knol.google.com/k/fred-grott/advance-tabs/) после небольшого поиска в интернете.
это позволяет установить selector для цвета текста, поэтому при выборе вкладки можно использовать другой цвет. Что может быть очень полезно, если вы используете другой цвет фона для вкладки, если его выбрали. Конечно, вы также можете просто бросить простой цвет, а не селектор.

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

где Цвет р..text_tab_indicator это селектор xml-файл находится в папке res/drawable.

другими словами, текст индикатора действительно является TextView который извлекается через View объект, к которому можно получить доступ из


ответ Дэнни C на 100% правильный.Я просто хотел добавить что-то к нему, чтобы сделать полный ответ с файлом ресурсов.

text_tab_indicator в разделе res / color file

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

и этот text_tab_unselected & text_tab_selected будет выглядеть так в папке цвета/значения

<resources> 
<color name="text_tab_selected">#ffffff</color>
<color name="text_tab_unselected">#95ab45</color>

после этого, наконец, добавьте ответ Dannyy в tab class file

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

изменение цвета также может быть указано без использования java-что, вероятно, лучше.

я внес изменения в text_tab_indicator (обратите внимание, что textColor был изменен на "цвет"):

<?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>

установите стиль TabWidget, чтобы указать на определенный стиль в вашем xml-коде:

<TabWidget
    ...
    style="@style/TabText"
    />

объявите свой text_tab_indicator, расположенный в /res / color, как вы хотели цвет в стиле

<style name="TabText">
    <item name="android:textColor">@color/tab_text_color</item>
</style>

Он работал как шарм (для я.)

Ура, Рэндалл!--4-->


попробовать ColorStateLists. удача.