Android 页面上滑置顶悬停实现 (CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView)

我开始炒冷饭了啊,有人说这套组合已经被用烂了,有人说这玩意谁都会,其实没有人说哈,我就是怕被人说,提前预警哈.

最近,工作比较忙,好久都没有写一下博客来说点什么.

刚刚我去翻了一下项目,发现去年的上滑置顶页面可以给大家拿出来讲一下:

Android 页面上滑置顶悬停实现 (CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView)_第1张图片

 //------------------------------------------------------------------------------------

上滑触发置顶后的样子:

Android 页面上滑置顶悬停实现 (CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView)_第2张图片

好,如果你也想要实现类似的效果,那么请你调整一下坐姿,开始进入正题.

内个谁! 后排的童鞋帮忙把同桌喊一下,别睡了... (^_^)∠※

首先介绍用到的控件:

最外层:CoordinatorLayout

上半部分_外层:AppBarLayout  

上半部分_上滑后隐藏的部分:CollapsingToolbarLayout

下半部分_上滑充满的部分:NestedScrollView

豁出去了,我要画图了:

Android 页面上滑置顶悬停实现 (CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView)_第3张图片

怎么样,是不是画的简洁易懂!

最后我把我这个页面的代码分享出来:



    
    
        
        

            

                

                    

                        

                        

                            

                            

                            

                        


                    

                    

                        

                            

                            

                            

                            

                        


                    
                
            


            

                

                    
                    

                    


                    

                



                
            
        


        
        

            

            
        
    




监听置顶事件代码: 

AppBarLayout appBarLayout = findViewById(R.id.appBarLayout);
appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
    @Override
    public void onStateChanged(AppBarLayout appBarLayout, State state) {

        if (state == State.EXPANDED) { //做你想做的,比如显示新的标题布局及样式
            //展开状态 
        } else if (state == State.COLLAPSED) {
            //折叠状态
        } else {
            //中间状态
        }
    }
});

最后,有什么深海没有讲清楚的,或者大家想问的,欢迎到评论区留言哦!

你可能感兴趣的:(Android)