【需求分析】
最近项目中遇到这样一个需求,GridView在初始布局时有一个上面的padding。但是当滑动屏幕时,这个padding被动态填充,增大滑动区间和用户视觉区。折腾了好久,找到了相关属性android:clipToPadding可以进行设置。
【动画效果】
这里需要的效果是:起初ListView具有上方的padding,而在用户手动滑动ListView后,上滑动的内容可以填充进这部分padding中,具体如下所示:
如果不对android:clipToPadding进行设置,得到的动画效果如下:
此时,从动图中可以看出,ListView上方的padding一直存在于那边,并且当手动滑动listView时,item只是沿着padding的下边进行滑动,导致滑动后list_item和上面的actionBar好似分割开来了。通过添加android:clipToPadding=false这条属性,可以有效解决由于设置了padding导致的动态滑动分割影响。
【实现方案】
在ListView或者GridView中添加android:clipToPadding属性。
【代码展示】
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"