为什么AppBarLayout底部内容被截断?如何让页面所有内容完整显示
问题原因
- 承载AppBarLayout的
CoordinatorLayout配置了android:layout_height="wrap_content",作为外层容器需要占满父布局高度才能让AppBarLayout$ScrollingViewBehavior正确计算滚动区域的可用高度,当前配置会导致滚动内容总高度超出父容器可视范围,底部内容被裁剪。 - 部分场景下滚动视图没有预留BottomNavigation的适配边距,也会导致底部内容被导航栏遮挡。
修复步骤
- 修改承载AppBarLayout的XML中CoordinatorLayout的高度属性,将
wrap_content改为match_parent:
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 此处修改为match_parent --> <!-- 原有AppBarLayout和FrameLayout代码保持不变 --> </androidx.coordinatorlayout.widget.CoordinatorLayout>
- (可选,若修改后仍有少量内容被裁剪)给Fragment的根布局NestedScrollView添加底部内边距和关闭裁剪padding的属性:
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:paddingBottom="64dp" <!-- 适配BottomNavigation的标准高度,可根据实际布局调整 --> android:clipToPadding="false"> <!-- 滚动时不会裁剪padding区域的内容 --> <!-- 原有子布局代码保持不变 --> </androidx.core.widget.NestedScrollView>
修改完成后重新编译运行即可展示完整内容,不需要调整图表的上边距,也不会影响顶部其他内容的添加。
内容的提问来源于stack exchange,提问作者YuJong
相关产品推荐
相关产品推荐

