如何移除NavigationDrawer(侧边导航抽屉)底部的多余横条?
解决方案
请按以下步骤逐一排查修改:
- 第一步:调整主题配置
打开你的themes.xml,在Theme.Flash样式中添加如下配置,关闭导航栏强制对比度、设置导航栏透明:<item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:enforceNavigationBarContrast" tools:targetApi="q">false</item> - 第二步:调整布局属性
修改activity.xml中的DrawerLayout和NavigationView属性:- 给根节点
DrawerLayout添加android:fitsSystemWindows="true" - 把
NavigationView的android:fitsSystemWindows="true"删除,改为false - 给
NavigationView添加如下属性,移除默认边距和分割线:
app:dividerHeight="0dp" android:paddingBottom="0dp" app:itemVerticalPadding="8dp" <!-- 可根据设计调整数值,不留多余底部边距即可 --> - 给根节点
- 第三步:代码动态适配(可选,若上述修改不生效再添加)
在Activity的onCreate方法中添加如下代码,清除NavigationView的默认内边距:// Java版本 NavigationView navView = findViewById(R.id.drawerNavigationView); navView.setPadding(0, 0, 0, 0); navView.setClipToPadding(false);// Kotlin版本 val navView = findViewById<NavigationView>(R.id.drawerNavigationView) navView.setPadding(0, 0, 0, 0) navView.clipToPadding = false
修改完成后重新编译运行即可移除底部多余横条。
内容的提问来源于stack exchange,提问作者new_programming_student
相关产品推荐
相关产品推荐

