Teniendo el problema de que el nuevo TabLayout usa el color del indicador del valor colorAccent
, decidí profundizar en la android.support.design.widget.TabLayout
implementación, descubriendo que no hay métodos públicos para personalizar esto. Sin embargo, encontré esta especificación de estilo de TabLayout:
<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
<item name="tabMaxWidth">@dimen/tab_max_width</item>
<item name="tabIndicatorColor">?attr/colorAccent</item>
<item name="tabIndicatorHeight">2dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
<item name="tabSelectedTextColor">?android:textColorPrimary</item>
</style>
Con esta especificación de estilo, ahora podemos personalizar TabLayout de esta manera:
<android.support.design.widget.TabLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@id/pages_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="@android:color/white"
app:tabIndicatorHeight="4dp"/>
Y el problema resuelto, tanto el color del indicador de pestaña como la altura se pueden cambiar de sus valores predeterminados.
parent="@style/Base.Widget.Design.TabLayout"
Con la biblioteca de soporte de diseño ahora puede cambiarlos en el xml:
Para cambiar el color del indicador TabLayout:
Para cambiar la altura del indicador TabLayout:
fuente
Como no puedo publicar un seguimiento del comentario del desarrollador de Android , aquí hay una respuesta actualizada para cualquier otra persona que necesite configurar mediante programación el color del indicador de pestaña seleccionado:
Del mismo modo, para la altura:
Estos métodos se agregaron recientemente a la revisión 23.0.0 de la Biblioteca de soporte , por lo que la respuesta de Soheil Setayeshi utiliza la reflexión.
fuente
fuente
Con la biblioteca de soporte de diseño v23 puede establecer mediante programación el color y la altura.
Solo use para la altura:
Aquí el javadoc oficial .
Solo use para el color:
Aquí el javadoc oficial .
Aquí puede encontrar la información en Google Tracker .
fuente
Para cambiar el color y la altura del indicador mediante programación, puede usar la reflexión. por ejemplo, para el color del indicador, use el siguiente código:
y para cambiar la altura del indicador use "setSelectedIndicatorHeight" en lugar de "setSelectedIndicatorColor" y luego invoque la altura deseada
fuente
Foto indicador use esto:
fuente
de xml:
de java:
fuente
Puedes cambiar esto usando xml
fuente
Simplemente ponga esta línea en su código. Si cambia el color, cambie el valor del color entre paréntesis.
fuente
Android lo hace fácil.
Entonces, solo decimos
Eso nos dará un color azul normal y un color púrpura seleccionado.
Ahora establecemos la altura
Y para la altura decimos
fuente