Trick of clipToPadding

本文介绍了在使用ListView、GridView、RecyclerView等ViewGroup时,经常遇到的滑动时上下边距始终存在的问题,并提供了解决方案。通过设置android:clipToPadding属性为false,可以轻松解决此问题,提升用户体验。

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" />
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值