1、问题
使用ListView、GridView、RecyclerView等ViewGroup时,经常会需要设置上下左右的边距,但是在列表滚动时,边距始终存在,item不能出现在边距范围内,使得页面不太美观。
2、目标
去除ListView、GridView、RecyclerView等控件滑动时,上下存在的边距,提升用户体验。
3、解决
(1)首先能想到的解决方案是在各个item布局中去设置边距,这样滑动时,边距应该算在item 中,不会影响外层ViewGroup控件。但是,有时候不一定最上面的边距就刚好和item之间的上下边距一样,那就可能需要在代码中判断item的位置,手动去设置item的边距,比较麻烦。
(2)android:clipToPadding
Defines whether the ViewGroup will clip its children and resize (but not clip) any EdgeEffect to its padding, if padding is not zero.
设定ViewGroup是否裁剪子view,重置边缘大小来适应ViewGroup的padding。意思就是是否保留ViewGroup的padding区域,滑动时不在padding区域绘制子view。默认情况下为true,也就会出现滚动时上下边距仍然存在的情形。因此设置clipToPadding为false,即可解决问题,so easy。
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topic_gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
...
android:clipToPadding="false"
android:scrollbars="none" />
本文介绍了在使用ListView、GridView、RecyclerView等ViewGroup时,经常遇到的滑动时上下边距始终存在的问题,并提供了解决方案。通过设置android:clipToPadding属性为false,可以轻松解决此问题,提升用户体验。
2297

被折叠的 条评论
为什么被折叠?



