CoordinatorLayout 使用

  • CoordinatorLayout 介绍

1.作为顶层布局
2.调度协调子布局
CoordinatorLayout提供了很棒的交互体验,并且也有良好的定制性,可以制作自己想要的交互效果,下面看下一些基本用法。

  • A.很常见的一种效果

CoordinatorLayout 使用_第1张图片
2.jpg

CoordinatorLayout 使用_第2张图片
1.jpg

xml 文件如下:




    
        
            
            
        
    
    
        
    
    

其实只是xml文件来实现的,需要注意有以下几点:
a.
ToolBar的标题,使用setTitle()方法设置title。

b.
Content scrim:ToolBar被折叠到顶部固定时候的背景,
可以使用setContentScrim(Drawable)方法或者在属性中
使用 app:contentScrim=”?attr/colorPrimary”来改变背景。

c.
Parallax scrolling children:CollapsingToolbarLayout滑动时,
子视图的视觉差
app:layout_collapseParallaxMultiplier=”0.6”改变。
值de的范围0.0~1.0,值越大视差越大。

d.
CollapseMode :子视图的折叠模式,在子视图设置,有两种
“pin”:固定模式,在折叠的时候最后固定在顶端;
“parallax”:视差模式,在折叠的时候会有个视差折叠的效果。
我们可以在布局中使用属性app:layout_collapseMode=”parallax”来改变。

e.
layout_anchor 的属性,连同 layout_anchorGravity 一起,设置悬浮view FloatingActionButton的位置 。

f.
app:layout_scrollFlags="scroll|exitUntilCollapsed"
这个属性是所有不停留在顶端的容器或者view都要设置的,如果不设置则会自向上滑动的时候停留在顶部,
不离开屏幕 scrollFlags 有四个值 常用的是上面两个,其他两个再配合 minHeight属性使用时,有不同的动画效果.

layout_scrollFlags的四个值:

1>scroll: 所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。例如,TabLayout 没有设置这个值,将会停留在屏幕顶部。

2>enterAlways: 设置这个flag时,向下的滚动都会导致该view变为可见,启用快速“返回模式”。

3>enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。

4>exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。

  • B.顶部悬浮不再使用gone visible 实现,使用CoordinatorLayout来控制

CoordinatorLayout 使用_第3张图片
![q2.jpg](http://upload-images.jianshu.io/upload_images/3239542-a760910b598a1a49.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

xml文件如下:




    

        
            

            
        

        

    

    

        

    



这样的效果只需要把想要悬浮在顶部的view
写在appbarlayout 最外层里面,NestedScrollview外面就行了, so easy,
最常用的是和TabLayout搭配使用。

  • C. 自定义Behavior,实现非常棒的动画效果。

CoordinatorLayout 使用_第4张图片
aa.jpg
CoordinatorLayout 使用_第5张图片
cc.jpg
CoordinatorLayout 使用_第6张图片
bb.jpg
 

        

    

app:layout_behavior="@string/appbar_scrolling_view_behavior">

这个@String其实是一个类,这个类可以自定义去实现,
以下提供一些讲的挺好的文章,想要深入探究的可以看看。
http://www.open-open.com/lib/view/open1453021356261.html
http://www.jianshu.com/p/a506ee4afecb
http://www.jianshu.com/p/488283f74e69

你可能感兴趣的:(CoordinatorLayout 使用)