Color de la pestaña seleccionada en la Vista de navegación inferior

Estoy agregando un BottomNavigationView a un proyecto, y me gustaría tener un color de texto (y color de icono) diferente para la pestaña seleccionada (para lograr el efecto de inserción de tabs no seleccionadas). Usar un color diferente con android:state_selected="true" en un archivo de recursos de selector de colores no parece funcionar. También intenté tener entradas de elementos adicionales con android:state_focused="true" o android:state_enabled="true" , desafortunadamente no hubo ningún efecto. También intenté establecer el atributo state_selected en falso (explícitamente) para el color predeterminado (no seleccionado), sin suerte.

Aquí es cómo agrego la vista a mi diseño:

  

Aquí está mi selector de color ( bnv_tab_item_foreground.xml ):

      

Y mi recurso de menú ( bottom_nav_bar_menu.xml ):

        

Apreciaría cualquier ayuda.

Mientras realiza un selector , siempre mantenga el estado predeterminado al final; de lo contrario, solo se usará el estado predeterminado. Necesitas reordenar los artículos en tu selector como:

      

Y el estado que se usará con BottomNavigationBar está state_checked not state_selected .

1. Res dentro de crear carpeta con nombre de color (como drawable)

2. Haga clic derecho en la carpeta de color. Seleccione nuevo-> archivo de recursos de color-> archivo de creación color.xml (bnv_tab_item_foreground) (Figura 1: Estructura de archivos)

3. Copie y pegue bnv_tab_item_foreground

  

bnv_tab_item_foreground:

       

Figura 1: Estructura del archivo:

Figura 1: Estructura del archivo

Intenta usar android:state_enabled lugar de android:state_selected para los atributos del elemento selector.

BottomNavigationView utiliza colorPrimary del tema aplicado para la pestaña seleccionada. Por lo tanto, puede crear un estilo con el color primario preferido y configurarlo como un tema para su BottomNavigationView en un archivo de diseño xml.

styles.xml :

   

your_layout.xml :