clipChildren使用误区

clipToPadding、clipChildren概念

  1. clipChildren用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChildren被设置为true。 也就是不允许进行扩展绘制。

  2. clipToPadding用来定义ViewGroup是否允许在padding中绘制。默认情况下,cliptopadding被设置为ture, 也就是把padding中的值都进行裁切了。

具体用途示例

  • clipToPadding
    该属性很适合的应用场景: 设置RecyclerView的第一个(最后一个)Item距离屏幕TOP(BOTTOM)有一段距离的情况
    有的需求场景是我们需要给列表上下留空,但是滑动的时候又要滑动到留空的区域,如果我们只是给RecyclerView设置了paddingTop和paddingBottom ,那么我们可以发现在滑动RecyclerView的过程
    中这个padding当然是存在的.在padding部分是看不到RecyclerView的item的,本质上是因为在这两部分没有绘制我们的RecyclerView。
    假若我们此时为RecyclerView设置属性android:clipToPadding=”false”,同样再滑动RecyclerView此时可以
    发现在RecyclerView的头部以上和尾部以下都占有padding部分,但是滑动依然可以显示我们的RecyclerView的 item。

  • clipChildren

  • 该属性很适合的应用场景: 某元素超出父View控件,或者是放大的动画效果时。

    TODO : 2017/07/08 补充具体例子和代码

注意事项,重要!!!

  • clipChildren的设置应该放在它爷爷节点的下面。
    很多人都反馈设置了属性不生效就是这一点原因,如果在没有爷爷节点的情况下设置在根节点,View就会显示超出屏幕。

你可能感兴趣的:(android)