Estoy agregando un BottomNavigationViewa un proyecto, y me gustaría tener un color de texto diferente (y tinte de icono) para la pestaña seleccionada (para lograr el efecto de pestañas no seleccionadas en gris). Usar un color diferente con android:state_selected="true"un archivo de recursos de selector de color no parece funcionar. También intenté tener entradas de elementos adicionales con android:state_focused="true"o android:state_enabled="true", sin efecto, desafortunadamente. También intenté establecer el state_selectedatributo en falso (explícitamente) para el color predeterminado (no seleccionado), sin suerte.
Así es como agrego la vista a mi diseño:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/silver"
app:itemIconTint="@color/bnv_tab_item_foreground"
app:itemTextColor="@color/bnv_tab_item_foreground"
app:menu="@menu/bottom_nav_bar_menu" />
Aquí está mi selector de color ( bnv_tab_item_foreground.xml):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/darker_gray" />
<item android:state_selected="true" android:color="@android:color/holo_blue_dark" />
</selector>
Y mi recurso de menú ( bottom_nav_bar_menu.xml):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_home"
android:icon="@drawable/ic_local_taxi_black_24dp"
android:title="@string/home" />
<item
android:id="@+id/action_rides"
android:icon="@drawable/ic_local_airport_black_24dp"
android:title="@string/rides"/>
<item
android:id="@+id/action_cafes"
android:icon="@drawable/ic_local_cafe_black_24dp"
android:title="@string/cafes"/>
<item
android:id="@+id/action_hotels"
android:icon="@drawable/ic_local_hotel_black_24dp"
android:title="@string/hotels"/>
</menu>
Apreciaría cualquier ayuda.
fuente

1. Dentro de resolución crear carpeta con color de nombre (como dibujable)
2. Haga clic derecho en la carpeta de color. Seleccione nuevo-> archivo de recursos de color-> crear archivo color.xml (bnv_tab_item_foreground) (Figura 1: Estructura del archivo)
3. Copie y pegue bnv_tab_item_foreground
bnv_tab_item_foreground:
Figura 1: Estructura del archivo:
fuente
BottomNavigationViewusa colorPrimary del tema aplicado para la pestaña seleccionada y usaandroid:textColorSecondaryel tinte del icono de pestaña inactiva.Por lo tanto, puede crear un estilo con el color primario preferido y establecerlo como un tema
BottomNavigationViewen un archivo de diseño xml.styles.xml :
your_layout.xml :
fuente
android:textColorSecondaryno funciona. debería usarandroid:colorForegrounden su lugarandroid:textColorSecondaryfunciona para mi. ¡Gracias!Si desea cambiar los colores de iconos y textos mediante programación:
fuente
Es demasiado tarde para responder, pero podría ser útil para alguien. Estaba cometiendo un error muy tonto, estaba usando un archivo selector llamado bottom_color_nav.xml para Seleccionar y deseleccionar el cambio de color, pero aún así no reflejaba ningún cambio de color en BottomNavigationView.
Entonces me doy cuenta de que estaba devolviendo false en el método onNavigationItemSelected . Funcionará bien si devuelve verdadero en este método.
fuente
Intente usar en
android:state_enabledlugar deandroid:state_selectedlos atributos del elemento selector.fuente
Para establecer textColor,
BottomNavigationViewtiene dos propiedades de estilo que puede establecer directamente desde el xml:itemTextAppearanceActiveitemTextAppearanceInactivefuente
Estoy usando un
com.google.android.material.bottomnavigation.BottomNavigationView(no es lo mismo que OP) y probé una variedad de las soluciones sugeridas anteriormente, pero lo único que funcionó fue la configuraciónapp:itemBackgroundyapp:itemIconTintel color de mi selector funcionó para mí.Mis
color/tab_color.xmlusosandroid:state_checkedy también estoy usando un color de estado seleccionado para
color/bottom_navigation_text_color.xmlNo es totalmente relevante aquí pero para una total transparencia, mi
BottomNavigationViewestilo es el siguiente:fuente
Esto funcionará:
fuente
En lugar de crear un selector, la mejor manera de crear un estilo.
y para cambiar el tamaño del texto, seleccionado o no seleccionado.
¡Disfruta de Android!
fuente