Bottom Navigation Activity模式下Fragment顶部出现意外边距如何解决
底部导航栏Fragment顶部意外边距修复方案
问题根因
Android Studio 自带的「Bottom Navigation Activity」模板生成的布局代码默认给Fragment承载容器添加了适配顶部导航栏的内边距,且默认开启了系统窗口适配属性,就会出现截图中的顶部多余边距。
修复步骤
- 第一步:打开对应该页面的Activity布局文件,通常命名为
activity_main.xml - 第二步:找到布局内的
FragmentContainerView(旧版本模板为fragment标签,默认id一般为nav_host_fragment_activity_main),删除标签下的android:paddingTop属性即可,模板默认会给该属性赋值为?attr/actionBarSize,就是多余边距的高度 - 第三步:如果删除padding后仍有边距,给该
FragmentContainerView添加属性android:fitsSystemWindows="false",关闭默认的系统窗口边距适配 - 第四步:如果上述操作都无效,检查你自行实现的Fragment根布局,是否额外设置了顶部margin/padding,删除对应属性即可
参考修改后的布局代码示例:
<androidx.fragment.app.FragmentContainerView android:id="@+id/nav_host_fragment_activity_main" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" android:fitsSystemWindows="false" app:navGraph="@navigation/mobile_navigation" />
内容的提问来源于stack exchange,提问作者J.P.
相关产品推荐
相关产品推荐

