Recyclerview头部吸顶布局实现

原先使用recylerview,配合appbarlayout+CoordinatorLayout实现的头部吸顶,但是使用中发现严重bug,布局的head和内容分离,十分难看,所以重新搞了这个实现,代码如下:
xml布局:
head




    
        
    


    

        

            
        

        
            
        
        
            
        
        
            
        
    



recyclerview的主布局:


            
            
                

                    

                        
                    

                    
                        
                    
                    
                        
                    
                    
                        
                    
                
                
            

        

然后就是activity或fragment中监听recyclerview的滑动,代码如下:

mRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                val layoutManager = mRecyclerView.layoutManager as GridLayoutManager
                val view = layoutManager.findViewByPosition(0)
                if (view != null) {
                    mSelectLayout1.setVisible(view.top.absoluteValue > mHeadView.mTopView.height)
                } else {
                    mSelectLayout1.setVisible(true)
                }
            }
        })

剩下的,比如选择筛选类型要设置双份的,切记如果使用pageadapter,请使用FragmentPagerAdapter,使用FragmentStatePagerAdapter会出现页面不刷新的bug,有问题可以随时联系我!

你可能感兴趣的:(Recyclerview头部吸顶布局实现)