羊皮书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,这样子布局就可以绘制到父布局的外面,就能达到预计的效果。

案例

1426596831861410.png
添加clipToPadding后
添加clipToPadding前
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,467评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,809评论 1 92
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,547评论 0 17
  • 星期天 我能干嘛?
    醉无痕阅读 132评论 1 0