如何移除或修改Material3底部导航栏的淡紫色选中动画?
下面是针对你问题的几种可行解决方案:
方法1:自定义Item样式禁用/修改波纹动画
在res/values/themes.xml(或styles.xml)中创建自定义样式,覆盖BottomNavigationItem的波纹属性:
<style name="CustomBottomNavItem" parent="Widget.Material3.BottomNavigationItem"> <!-- 完全移除波纹效果 --> <item name="rippleColor">@android:color/transparent</item> <!-- 或者替换为你需要的波纹颜色 --> <!-- <item name="rippleColor">@color/your_custom_ripple_color</item> --> </style>
然后在布局的BottomNavigationView中应用该样式:
<com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_nav" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_nav_menu" app:itemStyle="@style/CustomBottomNavItem" />
方法2:禁用颜色过渡动画并自定义选中颜色
如果淡紫色是选中时图标/文字的颜色过渡效果,可以通过以下步骤修改:
- 创建颜色选择器文件
res/color/bottom_nav_color_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/your_selected_color" android:state_checked="true" /> <item android:color="@color/your_unselected_color" /> </selector>
- 在布局中设置颜色选择器并禁用动画:
<com.google.android.material.bottomnavigation.BottomNavigationView ... app:itemIconTint="@color/bottom_nav_color_selector" app:itemTextColor="@color/bottom_nav_color_selector" app:itemAnimationEnabled="false" />
方法3:通过Kotlin代码直接控制动画
也可以在代码中直接禁用动画属性:
val bottomNav = findViewById<BottomNavigationView>(R.id.bottom_nav) // 禁用Item选中时的动画 bottomNav.itemAnimationEnabled = false
内容的提问来源于stack exchange,提问作者M Fiqry Septiawan
相关产品推荐
相关产品推荐

