羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren

1. clipToPadding

属性解释:

  • clipToPadding默认为true,当clipToPadding为true时,表示布局不能绘制到padding区域。当clipToPadding为false时,表示布局能够被绘制到padding区域。

提出问题:

  • 当我们为ListView、ScrollView、GridView设置了paddingTop或paddingBottom的时候,我们发现当滑动到顶部和底部的时候,默认情况下padding/margin在滑动中一直存在,view总是不能滑动到最底部和最顶部,看起来很别扭。

问题原因:

  • 由于默认情况下,clipToPadding为true,导致布局不能滑动到最顶部或最底部,很多人平时很少会关注这个属性。

解决办法:

  • 在布局ListView、ScrollView、GridView中将clipToPadding设置为false即可。

2. clipChildren

属性解释:

  • 定义一个孩子是否仅限于画里面的界限。clipChildren默认为true,表示孩子不能绘制到padding区域,即仅能绘制在padding内部。clipChildren为false时,表示孩子可以绘制到padding区域。

提出问题:

  • 类似微信未读消息的布局中,设置的角标总是在布局的内部,也就是在其父页面的内部,达不到微信的效果。

问题原因:

  • clipChildren默认是true,导致子布局不能绘制到父布局的外面。

解决办法:

  • 将clipChildren设置为false,这样子布局就可以绘制到父布局的外面,就能达到预计的效果。

案例

  • ListView滚动的时候可以透过ActionBar看到下面的ListView的内容。
羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren_第1张图片
1426596831861410.png
  • listview设置了padding 不是全部充满屏幕。
羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren_第2张图片
添加clipToPadding后
羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren_第3张图片
添加clipToPadding前

你可能感兴趣的:(羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren)