Android Scrollview嵌套RecyclerView導致滑動卡頓問題解決

來源:互聯網
上載者:User

標籤:nta   介面   his   bool   方法   copy   mon   tom   說明   

一個比較長的介面一般都是Scrollview嵌套RecyclerView來解決.不過這樣的UI並不是我們開發人員想看到的,實際上嵌套之後.因為Scrollview和RecyclerView都是滑動控制項.會有一點滑動上的衝突.導致滑動起來有些卡頓.這個時候.我們重寫一下LayoutManager就行了

例如:

 

[java] view plain copy 
  1. LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false) {  
  2.         @Override  
  3.         public boolean canScrollVertically() {  
  4.             return false;  
  5.         }  
  6.     };  
  7.     recyclerview.setLayoutManager(linearLayoutManager);  
  8.     recyclerview.setAdapter(tempCommonAdapter);  

如此.禁止掉RecyclerView的滑動.就能一如既往的流暢了 

問題現象:

一個介面有多個RecyclerView或者其他超過一屏顯示的一些內容時,就需要要上下滾動了,就會需要在外面嵌套一個ScrollView,但是滑動過程不是很順暢,有卡頓的感覺。

解決方案:

禁止RecyclerView的滑動。

 

最簡單便捷的方法就是 [java] view plain copy 
  1. linearLayoutManager = new LinearLayoutManager(context) {  
  2.     @Override  
  3.     public boolean canScrollVertically() {  
  4.         return false;  
  5.     }  
  6. };  

另外就是重寫LayoutManager了,以Grid模式舉例說明:

 

 

[java] view plain copy 
  1. public class ScrollGridLayoutManager extends GridLayoutManager {  
  2.     private boolean isScrollEnabled = true;  
  3.     public ScrollGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {  
  4.         super(context, attrs, defStyleAttr, defStyleRes);  
  5.     }  
  6.   
  7.     public ScrollGridLayoutManager(Context context, int spanCount) {  
  8.         super(context, spanCount);  
  9.     }  
  10.   
  11.     public ScrollGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {  
  12.         super(context, spanCount, orientation, reverseLayout);  
  13.     }  
  14.   
  15.     public void setScrollEnabled(boolean flag) {  
  16.         this.isScrollEnabled = flag;  
  17.     }  
  18.   
  19.     @Override  
  20.     public boolean canScrollVertically() {  
  21.         //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll  
  22.         return isScrollEnabled && super.canScrollVertically();  
  23.     }  
  24. }  

Android Scrollview嵌套RecyclerView導致滑動卡頓問題解決

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.