如何去除Android中BottomNavigationView菜单项的背景?
步骤1:修改导航栏整体背景为透明
将原XML中android:background="@android:color/white"替换为透明色,可使用系统内置透明色或十六进制透明值:
android:background="@android:color/transparent"
或者:
android:background="#00000000"
步骤2:移除菜单项选中态的紫色背景
默认Material Design样式会给选中菜单项添加背景色(即你看到的紫色),通过app:itemBackground属性将其设置为透明即可消除:
app:itemBackground="@android:color/transparent"
步骤3:添加阴影(可选)
如果需要保留导航栏的阴影效果,添加android:elevation属性设置阴影高度:
android:elevation="8dp"
修改后的完整BottomNavigationView代码
<com.google.android.material.bottomnavigation.BottomNavigationView android:id="@id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" android:elevation="8dp" <!-- 可选,添加阴影 --> app:itemIconSize="32dp" app:itemIconTint="#263238" app:itemTextColor="@color/bottom_nav_text_color" app:itemBackground="@android:color/transparent" <!-- 关键:移除菜单项背景 --> app:labelVisibilityMode="unlabeled" app:layout_constraintBottom_toBottomOf="parent" app:menu="@menu/bottom_navigation_menu" />
补充说明
- 若项目使用自定义Material主题,需确保主题中
bottomNavigationStyle未设置默认item背景,否则需在布局或主题中覆盖该样式。 - 如需自定义阴影颜色或样式,可创建带阴影的drawable作为背景,但直接使用
elevation是最简便的实现方式。
内容的提问来源于stack exchange,提问作者ProAslan
相关产品推荐
相关产品推荐

