You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中BottomNavigationView所有菜单项颜色一致问题求助

解决BottomNavigationView菜单项颜色一致的问题

嘿,这个问题我之前也踩过坑!BottomNavigationView所有菜单项颜色没区别,核心原因是你没给它配置**状态选择器(Selector)**来区分「选中」和「未选中」的状态。下面给你一步步解决:

1. 创建颜色状态选择器

首先在res/drawable目录下新建一个颜色选择器文件,比如nav_item_color_selector.xml,用来定义不同状态下的颜色:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 菜单项选中时的颜色 -->
    <item android:color="#FFD700" android:state_checked="true" />
    <!-- 菜单项未选中时的默认颜色 -->
    <item android:color="#888888" android:state_checked="false" />
</selector>

你可以把上面的颜色值换成你需要的配色。

2. 更新BottomNavigationView布局

回到你的布局代码,需要同时给图标和文字设置这个选择器(之前你只设置了图标,文字也得同步):

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    android:background="#291D1E"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:itemIconTint="@drawable/nav_item_color_selector" <!-- 图标颜色选择器 -->
    app:itemTextColor="@drawable/nav_item_color_selector" <!-- 文字颜色选择器 -->
    app:menu="@menu/your_bottom_nav_menu" /> <!-- 确保这里引用了你的menu文件 -->

注意把@menu/your_bottom_nav_menu换成你实际的menu文件名。

3. 确认Menu菜单项可勾选

打开你的menu文件(比如res/menu/bottom_nav_menu.xml),确保每个菜单项都加上android:checkable="true",这样才能触发选中状态:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_home"
        android:title="Home"
        android:checkable="true" />
    <item
        android:id="@+id/nav_dashboard"
        android:icon="@drawable/ic_dashboard"
        android:title="Dashboard"
        android:checkable="true" />
    <item
        android:id="@+id/nav_notifications"
        android:icon="@drawable/ic_notifications"
        android:title="Notifications"
        android:checkable="true" />
</menu>

4. (可选)设置默认选中项

如果希望打开页面时默认选中某个菜单项,可以在Activity里加一行代码:

BottomNavigationView navView = findViewById(R.id.navigation);
navView.setSelectedItemId(R.id.nav_home); // 替换成你要默认选中的菜单项ID

这样操作后,BottomNavigationView的菜单项就能在选中和未选中状态下显示不同颜色啦!

内容的提问来源于stack exchange,提问作者user5508088

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:40:57