Android SmartRefreshLayout + CoordinatorLayout + AppBarLayout 实现可刷新/下拉 并且可以折叠的功能

融合 CollapsingToolbarLayout +SmartRefreshLayout 的效果

也提供了github的地址 : https://github.com/KennyChaos7/SmartRefreshLayout-CoordinatorLayout-AppBarLayout.git

device-2021-06-08-104734.png
device-2021-06-08-104753.png
device-2021-06-08-104824.png
device-2021-06-08-104941.png

当然,按照国际惯例,先上个效果图

  • CoordinatorLayout AppBarLayout CollapsingToolbarLayout Toolbar

    上面这四个布局其实除了Toolbar之外,可能都不是场景常见布局,所以在这里会贴一些自己的理解和一些参考的文章

    • CoordinatorLayout
     
        
          
        
        
      
      
      
     
      
      
      
      
      
      
      
      
      
      
      
      
      
      
     
>   这里就不贴Activity了,因为并没有所有的效果实现并不需要Activity的参与

如果做到这一步,你就会发现,其实这里的效果跟实际的效果图的效果不一致,或者应该说完全没有想要的效果。
这是因为下面这两行代码

      
      ...
      
     ... 

这里我们把Toolbar设置成了位于CollapsingToolbarLayout的最底部,而且由于高度没有限制,是随着子布局的扩大而自适应的wrap_content,从而使得在滑动时AppBarLayout计算CollapsingToolbarLayout与顶边的高度为0,没有可以折叠的距离,从而使得整个折叠效果不存在

解决方法也很简单,三选一即可:

  1. 去掉android:layout_gravity="bottom",改用android:layout_marginTop="xx"来间接设置可折叠的距离
  2. 给定Toolbar一个固定的高度
  3. Toolbar设置1px的高度,把折叠后要显示的布局放在CollapsingToolbarLayoutToolbar同级 (如果你不希望你的布局会在下拉加载时被折叠,则最好使用此方法)

最后给个正常有效果的xml看看吧



    
        
    
    
        
        
            

                
                    
                        
                    
                    
                        
                    
                
                
            
            
        
        
    

你可能感兴趣的:(Android SmartRefreshLayout + CoordinatorLayout + AppBarLayout 实现可刷新/下拉 并且可以折叠的功能)