其他分享
首页 > 其他分享> > android – 底部导航视图中选定选项卡的颜色

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

作者:互联网

我正在为项目添加BottomNavigationView,并且我希望为所选选项卡添加不同的文本(和图标色调)颜色(以实现灰显未选中的选项卡效果).在颜色选择器资源文件中使用与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" />

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

我将不胜感激任何帮助.

解决方法:

在创建选择器时,始终保持默认状态,否则仅使用默认状态.您需要将选择器中的项目重新排序为:

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

标签:navigationbar,android,material-design
来源: https://codeday.me/bug/20190923/1814972.html