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

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

Создайте его в своем настраиваемом изменении темы

<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)); 

Где R.color.text_tab_indicator – это XML-файл селектора, расположенный в папке res / drawable.

Другими словами, текст индикатора действительно представляет собой TextView который извлекается через объект View которому можно получить доступ из объекта TabWidget .
Взгляните на примеры Fred для получения дополнительной информации и контекста относительно объявлений переменных, а также других трюков.

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

Файл text_tab_indicator в файле res / color

 <?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 будет выглядеть так в папке colors / values

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

После этого добавьте ответ Дэнни в файл класса табуляции

 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 было изменено на «color»):

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

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

Приветствия, Рэндалл

Попробуйте ColorStateLists . Удачи.