底部导航视图中选定的选项卡的颜色

我将材料devise库中的新的底部导航视图添加到项目中,并且希望为选定的选项卡使用不同的文本(和图标色调)颜色(实现灰化非选定的选项卡效果)。 在颜色select器资源文件中对android:state_selected="true"使用不同的颜色似乎不起作用。 我也尝试过使用android:state_focused="true"android:state_enabled="true" ,不幸的是没有效果。 还尝试将state_selected属性设置为false(显式)为默认(非选定)颜色,没有运气。

下面是我如何添加导航底视图到我的布局:

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

这是我的颜色select器( 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> 

和我的菜单资源( 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> 

我将不胜感激任何帮助。

在做selector ,始终保持默认状态,否则只使用默认状态。 您需要重新sortingselect器中的项目,如下所示:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="@android:color/holo_blue_dark" /> <item android:color="@android:color/darker_gray" /> </selector> 

BottomNavigationBar一起使用的状态是state_checked而不是state_selected

尝试使用android:state_enabled而不是android:state_selected作为select器项目属性。