tutorial tabhost studio programacion móviles example español desarrollo curso aplicaciones android tabs tabwidget

tabhost - tabs android studio example



¿Cómo cambiar el color del texto del indicador de pestañas en Android? (5)

Aquí hay una nueva respuesta que encontré de Fred Grott ( http://knol.google.com/k/fred-grott/advance-tabs/ ) después de una pequeña búsqueda en Internet.
Esto le permite configurar un selector para el color del texto para que se pueda utilizar un color diferente cuando se selecciona o no la pestaña. Lo que puede ser muy útil si está utilizando un color de fondo diferente para la pestaña si está seleccionado. Por supuesto, también puedes lanzar un color liso y no un selector.

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

Donde R.color.text_tab_indicator es un archivo xml de selección ubicado en su carpeta res / drawable.

En otras palabras, el texto indicador es realmente un TextView que se puede recuperar a través del objeto View que se puede acceder desde el objeto TabWidget .
Eche un vistazo a los ejemplos de Fred para obtener más información y contexto con respecto a las declaraciones de variables, así como otros trucos.

¿Cómo cambiar el color del indicador de texto de la pestaña? Puedo cambiar el icono usando la etiqueta selectora referida en el example . pero no puede al color del texto. ¿cómo?


El cambio de color también se puede indicar sin usar java, lo que probablemente sea mejor.

Hice cambios en el text_tab_indicator (aviso textColor se cambió a "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>

Establezca el estilo de TabWidget para que apunte a un estilo específico en su código xml:

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

Declare su text_tab_indicator ubicado en / res / color como desee el color en el estilo

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

Funcionó como un encanto (para mí).

Saludos, Randall


Estilo en tu tema personalizado cambio

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

y

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


La respuesta de Danny C es 100% correcta. Solo quería agregarle algo para hacer una respuesta completa con un archivo de recursos.

El text_tab_indicator bajo el archivo 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>

Y este text_tab_unselected & text_tab_selected se verá así en la carpeta de colores / valores

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

Después de que finalmente agregue la respuesta de Dannyy en el archivo de clase de pestañas

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