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

如何修改App中BottomBar选项选中时的Selector颜色?

嘿,这个问题我太熟了!要修改BottomBar(应该是指Android原生的BottomNavigationView吧?)点击选项时的选中颜色,其实有两种常用的灵活方式,我给你一步步讲清楚:

方法一:创建Color Selector文件(自定义度最高)

这种方式可以精准控制选中/未选中状态的颜色,步骤很简单:

  • 首先在res/drawable目录下新建一个XML文件,比如命名为bottom_nav_color_selector.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 选中状态的颜色,替换成你想要的色值 -->
    <item android:color="@color/custom_selected_color" android:state_checked="true" />
    <!-- 未选中状态的颜色 -->
    <item android:color="@color/custom_unselected_color" android:state_checked="false" />
    <!-- 默认 fallback 颜色 -->
    <item android:color="@color/custom_unselected_color" />
</selector>
  • 接着在res/values/colors.xml里定义你需要的颜色值:
<color name="custom_selected_color">#FF6200EE</color> <!-- 示例紫色 -->
<color name="custom_unselected_color">#8A8A8A</color> <!-- 示例灰色 -->
  • 最后在布局文件的BottomNavigationView标签里,引用这个selector:
<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_nav"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:itemIconTint="@drawable/bottom_nav_color_selector"
    app:itemTextColor="@drawable/bottom_nav_color_selector"
    app:menu="@menu/your_bottom_nav_menu" />
方法二:通过全局主题统一设置

如果想让所有BottomNavigationView都用这套颜色,直接修改主题更高效:

  • 打开res/values/styles.xml,找到你的App主题(比如AppTheme),添加或修改以下属性:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    ...
    <!-- 直接替换默认的colorPrimary为你想要的选中色 -->
    <item name="colorPrimary">@color/custom_selected_color</item>
    <!-- 设置未选中状态的颜色 -->
    <item name="colorOnSurface">@color/custom_unselected_color</item>
    <!-- 或者专门定义BottomNavigation的样式 -->
    <item name="bottomNavigationStyle">@style/CustomBottomNavStyle</item>
</style>

<style name="CustomBottomNavStyle" parent="Widget.MaterialComponents.BottomNavigationView">
    <item name="itemIconTint">@drawable/bottom_nav_color_selector</item>
    <item name="itemTextColor">@drawable/bottom_nav_color_selector</item>
</style>

小提醒

  • 确保你的底部导航menu里,每个item都设置了android:checkable="true",不然选中状态不会生效哦!
  • 如果你用的是第三方BottomBar库,核心逻辑还是设置颜色状态选择器,但具体属性名可能略有不同,不过看你提到默认用colorPrimary,应该是原生的Material组件啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:08:52