Android CoordinatorLayout结合AppBarLayout实现滑动悬浮功能

首先导入对应的库
compile 'com.android.support:design:26.1.0'

1.CoordinatortLayout

Android CoordinatorLayout结合AppBarLayout实现滑动悬浮功能_第1张图片
image.png

从官方文档直接了当的指出,CoordinatortLayout是一个更加强大的FrameLayout,他集成于ViewGroup,实现众多子View之间的滑动协调

2.AppBarLayout

AppBarLayout是一个继承与LinearLayout,布局方式为垂直布局的一个组件,通常与CoordinatortLayout配合使用,如果放在其他ViewGroup中单独使用,那将起不到任何效果。AppBarLayout子View中设置app:layout_scrollFlags可设置执行的动作,分别有一下4个属性
(1) scroll:值设为scroll的View会跟随滚动事件一起发生移动。
(2) enterAlways:值设为enterAlways的View,当ScrollView往下滚动时,该View会直接往下滚动。而不用考虑ScrollView是否在滚动。
(3) exitUntilCollapsed:值设为exitUntilCollapsed的View,当这个View要往上逐渐“消逝”时,会一直往上滑动,直到剩下的的高度达到它的最小高度后,再响应ScrollView的内部滑动事件。
(4) enterAlwaysCollapsed:是enterAlways的附加选项,一般跟enterAlways一起使用,它是指,View在往下“出现”的时候,首先是enterAlways效果,当View的高度达到最小高度时,View就暂时不去往下滚动,直到ScrollView滑动到顶部不再滑动时,View再继续往下滑动,直到滑到View的顶部结束。
3.关联使用
只需要在CoordinatortLayout布局里面添加AppBarLayout并且使用一个可滑动的布局NestedScrollView,这里我用的是RecyclerView(已实现NestedScrollingChild2接口),布局代码如下:





    

    

        

            

            
            

                

                    
                


                


                

                    
                

            

            
            


            
            

                

                
            

            
            

                

                

                
            
        

        

        


    

这里在RecyclerView中的app:layout_behavior="@string/appbar_scrolling_view_behavior",做为滑动的组件配合CoordinatorLayout使用,效果图如下:


Android CoordinatorLayout结合AppBarLayout实现滑动悬浮功能_第2张图片
image.png

Android CoordinatorLayout结合AppBarLayout实现滑动悬浮功能_第3张图片
image.png

你可能感兴趣的:(Android CoordinatorLayout结合AppBarLayout实现滑动悬浮功能)