clipToPadding和clipChildren,处理超出父view的子view

clipToPadding

有时候需要在listview里设置一个padding值,布局如下所示



    
    


结果如下图


clipToPadding和clipChildren,处理超出父view的子view_第1张图片

可以发现滚动时顶部16dp的padding是永远滚不到的,这样看起来比较奇怪,怎么解决?
只要在ListView里加入一行代码,就可以解决问题

  android:clipToPadding="false"
clipToPadding和clipChildren,处理超出父view的子view_第2张图片

clipChildren

在说clipChildren属性之前首先看一个效果图:


clipToPadding和clipChildren,处理超出父view的子view_第3张图片

为了做出这种效果图你能想到的方式是什么呢?用RelativeLayout?还是.......
其实很简单,只要用了这个神奇的属性后这个效果很容易就可以实现,下面是注意点:

  1. 只需在根节点设置android:clipChildren为false即可,默认为true,注意:一定是在布局文件的根节点设置,否则不起作用
  2. 可以通过android:layout_gravity控制超出的部分如何显示
  3. android:clipChildren的意思:是否限制子View在其范围内,我们将其值设置为false后那么当子控件的高度高于父控件时也会完全显示,而不会被压缩
  
  
      
  
          
  
          
  
          
  
          
  
          
      
  
  

你可能感兴趣的:(clipToPadding和clipChildren,处理超出父view的子view)