AppBarLayout和CollapsingToolbarLayout实现头部滑动折叠

效果如图往上拖动,会把首部隐藏掉。拖到一定程度就会把轻松找画室置顶,下面的两个RecycleView可以上滑下滑。recycleView滑到头部后就会把隐藏的head布局滑出来。AppBarLayout和CollapsingToolbarLayout实现头部滑动折叠_第1张图片AppBarLayout和CollapsingToolbarLayout实现头部滑动折叠_第2张图片AppBarLayout和CollapsingToolbarLayout实现头部滑动折叠_第3张图片

布局




    

        

            

                

                    

                    
                

                

                

                    

                        

                        

                            

                            

                        
                    

                    

                    

                        

                        

                            

                            

                        
                    
                

                
            

            
        
    

    

        

            

            

                

            

        

        

            

            
        
    

                                                                                                         
关键两个属性是
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
因为这个界面的toolbar各种效果需要自定义,然后我就将toolbar隐藏掉,自己写了个布局伪装成toolbar。是不是很机智。
 
  
还有其他的属性
enterAlways
快速返回模式。其实就是向下滚动时Scrolling View和Child View之间的滚动优先级问题。对比 scroll 和 scroll | enterAlways 设置,
发生向下滚动事件时,前者优先滚动Scrolling View,后者优先滚动Child View,当优先滚动的一方已经全部滚进屏幕之后,另一方才开始滚动。

enterAlwaysCollapsed
enterAlways的附加值。这里涉及到Child View的高度和最小高度,向下滚动时,Child View先向下滚
动最小高度值,然后Scrolling View开始滚动,到达边界时,Child View再向下滚动,直至显示完全。

exitUntilCollapsed
这里也涉及到最小高度。发生向上滚动事件时,Child View向上滚动退出直至最小高度,然后
Scrolling View开始滚动。也就是,Child View不会完全退出屏幕。

snap
简单理解,就是Child View滚动比例的一个吸附效果。也就是说,Child View不会存在局部显示的情况
,滚动Child View的部分高度,当我们松开手指时,Child View要么向上全部滚出屏幕,要么向下全部
滚进屏幕,有点类似ViewPager的左右滑动。
需要那种效果就可以改变值试试,就ok了。
 
  

你可能感兴趣的:(Android)