如何使RecyclerView禁止滚动

时间:2017-09-22 06:32:38

标签: android scroll android-recyclerview

在某些情况下,我们需要让RecyclerView无法滚动,因此请发挥您的优势来解决这个问题。

1 个答案:

答案 0 :(得分:1)

我有一些解决这个问题的方法,希望它可以帮助你。请参阅下面的详细信息:

  1. void setLayoutFrozen(boolean frozen); method details
    我强烈建议,如果我们只想为此方案设置滚动,因为它简单方便; if you want to know deeply

  2. 当我们使用 LayoutManager (LinearManager或GridLayoutManager)时,我们可以使用它。

  3. `

    LinearLayoutManager linearLayoutManager = new 
    
    LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false){
    
            @Override
            public boolean canScrollVertically() {
                return false;
            }
    
            @Override
            public boolean canScrollHorizontally() {
                return super.canScrollHorizontally();
            }
        };`
    

    GridLayoutManager是一样的。

    1. 从第二项开始,我们可以扩展相应的LayoutManager。
    2. `

      public class MyGridLayoutManager extends GridLayoutManager {
      
      private boolean isScrollEnabled = true;
      
      public MyGridLayoutManager(Context context, int spanCount) {
          super(context, spanCount);
      }
      public MyGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
          super(context, attrs, defStyleAttr, defStyleRes);
      }
      
      public MyGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
          super(context, spanCount, orientation, reverseLayout);
      }
      
      public void setScrollEnabled(boolean flag) {
          this.isScrollEnabled = flag;
      }
      
      @Override
      public boolean canScrollVertically() {
          return isScrollEnabled && super.canScrollVertically();
      }
      } 
      

      ` 4.我们可以处理RecyclerView TouchEvent以达到效果。

      从上面,我相信你可以自己做。祝你好运......