在Material Design的规范中,List被要求第一个元素和最后一个元素在滚动到尽头时,都距离边界8dp。这让人很容易想到给List添加android:paddingTop="8dp"
和android:paddingBottom="8dp"
这两行代码。但是在滚动时,会发现List中的items始终距离顶部8dp,这与只有当滑动到顶部时或者底部时才距离边界8dp的预期不符。看来简单的设置padding不行,给List添加一个高度为8dp的空白header和footer可以解决。不过有种更简单的实现方式,查阅文档还有这么一个属性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.
按照解释说明,给List加上一行额外的属性android:clipToPadding="false"
,一行代码,完美解决问题。