android:fillViewport和android:clipToPadding的使用

关于android:fillViewport和android:clipToPadding的使用

​ 今天在做一个典型的CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout页面时,发现底部的FloatingActionButton在小屏幕上,会遮挡部分scroll view中的内容,所以就想在scrollview上加paddingBottom能让内容能居于FloatActionButton的上面,就遇到了一些问题:

android:fillViewport




    

        

            

        
    

    

        

            

                

                
            
        
    
    

    


android:fillViewport

Defines whether the scrollview should stretch its content to fill the viewport.

意思是当scrollview中的children不足以撑满整个scrollview满屏(以collapsingbar收缩时状态计算)时,设置这个属性为true可以让scrollview的布局撑到满屏。

  • 如果paddingBottom属性设置在child中,这里的paddingBottom是参与scrollview滚动的,这个好理解,毕竟是在child中设置的
  • 如果paddingBottom属性设置在scrollview上面,paddingBottom的距离是不参与scrollview滚动的(和recyclerview类似)

android:clipToPadding的使用

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. This property is set to true by default.

May be a boolean value, such as "true" or "false".

定义ViewGroup(这里scrollview)滚动且padding不为0时,children是否会裁剪,什么意思呢?

  • 当clipToPadding为默认值true时,效果和没有是一样的,padding添加在scrollview,不参与滚动

  • 当clipToPadding为false时,padding的距离是可以一起随内容滑动的。也就是他的child不会被自己的padding所裁剪(我理解为遮挡)

图一:clipToPadding为默认值true


device-2019-02-27-144822.gif

图二:clipToPadding为false


device-2019-02-27-145217.gif

你可能感兴趣的:(android:fillViewport和android:clipToPadding的使用)