属性说明
在使用ListView或者RecycleView、ScrollView等滑动控件时候有一个强大但隐秘的属性,在android的布局XML文件中,android:clipToPadding=“boolean”,该属性值可设为true或者false。表示控件的绘制区域是否在padding里面的,true的情况下如果你设置了padding那么绘制的区域就往里缩,false则表示滑动时忽略padding的值。系统默认是true。
属性应用
这很多时候在listview滑动列表设计时会有一些内边距的要求,这时候问题就来了,直接用padding的话表面上可以解决,但是用完后有人发现在上下拉动整个内容时会看到有一个白色的内边距在那里,非常影响用户体验。这个时候这个属性就可以发挥作用了。上两幅动图直观解释。
示例1:android:clipToPadding=”true” (系统默认,不写即可)
<ListView
android:id="@+id/list"
android:paddingTop="30dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
示例2:android:clipToPadding=”false”
<ListView
android:id="@+id/list"
android:clipToPadding="false"
android:paddingTop="30dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
属性总结
代码中可以利用viewgroup的setClipChildren(false)方法来实现。