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

BottomNavigationView点击Item无动画问题排查求助

解决BottomNavigationView点击无切换动画的问题

先指出你最明显的配置错误:nav_item_color_state.xml的格式不规范——状态选择器必须包裹在<selector>根标签内,你直接写两个<item>标签会导致系统无法正确解析这个颜色状态文件,这会直接影响选中状态的切换反馈,甚至阻断动画触发。

另外,你用state_enabled来区分状态也不对,BottomNavigationView的item切换对应的是选中状态,而非启用状态。修正后的nav_item_color_state.xml应该是这样:

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

接下来再检查几个可能影响动画的点:

  • 确认bottom_navigation.xml菜单里的每个item都设置了android:checkable="true",只有可选中的item才会触发系统默认的切换动画(图标缩放、颜色过渡),示例如下:
<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需同理配置 -->
</menu>
  • 检查你的Support Design库版本是否过旧,建议更新到较新的稳定版本(比如com.android.support:design:28.0.0),旧版本可能存在动画相关的bug。
  • 避免给BottomNavigationView设置非常规的app:labelVisibilityMode属性,默认的auto模式会根据item数量自动适配动画逻辑(item数量≤3时为固定模式,有缩放动画;超过3时为移位模式,带滑动+缩放动画)。

你的OnNavigationItemSelectedListener实现是没问题的,return true会让系统自动处理item的选中状态,无需额外手动设置item.setChecked(true)。

按照上述步骤修正后,应该就能看到点击item时的切换动画了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:20:10