如何移除BottomNavigationView底部导航栏内的小型圆角矩形框?
你看到的内部小型圆角矩形框是Material Design BottomNavigationView自带的选中项默认背景,组件默认会给选中的菜单项添加这个背景样式,你的代码里没有显式关闭它。
解决方案1:移除选中项默认背景
直接在activityMain.xml的BottomNavigationView中添加app:itemBackground="@android:color/transparent"属性,将选中项的背景设为透明:
<com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" android:layout_margin="20dp" android:elevation="3dp" app:itemRippleColor="@android:color/transparent" app:itemIconSize="30dp" app:labelVisibilityMode="labeled" android:background="@drawable/rounded_corner" app:itemIconTint="@drawable/item_selector" app:itemTextColor="@drawable/item_selector" app:menu="@menu/bottom_menu" app:itemBackground="@android:color/transparent" <!-- 新增这一行 --> />
解决方案2:修复颜色选择器的状态顺序问题
你的item_selector.xml中状态匹配顺序存在逻辑问题:state_pressed="false"会优先匹配未按下的状态,导致最后的默认颜色永远不会生效,调整顺序并优化:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 选中状态 --> <item android:state_checked="true" android:color="@color/red" /> <!-- 按下状态(可选,提升交互体验) --> <item android:state_pressed="true" android:color="@color/red" /> <!-- 默认状态 --> <item android:color="@color/grey"/> </selector>
完成以上修改后,重新编译运行,内部的小型圆角矩形框就会消失,同时颜色选择器的逻辑也会更合理。
内容的提问来源于stack exchange,提问作者uranUsOP
相关产品推荐
相关产品推荐

