2016-05-05 29 views
0

landscapelingモードでrecyclerviewのスクロールを無効にし、ポートレートモードで有効にしたいとします。recyclerviewのスクロールを無効にして有効にする方法

recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() { 
     @Override 
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
      // Stop only scrolling. 
      return rv.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING; 
     } 
    }); 

私はスクロールを無効にするには、このメソッドを使用していますが、それを再度有効にする方法を見つけることができません。

ありがとうございました!

答えて

0

カスタムを行う必要があります。RecyclerViewは、ユーザーがランドスケープモードのときにプログラムで初期化し、このビューをレイアウトに追加します。ポートレートモード用

public class MyRecyclerextends RecyclerView { 

private boolean verticleScrollingEnabled = true; 

public void enableVersticleScroll (boolean enabled) { 
    verticleScrollingEnabled = enabled; 
} 

public boolean isVerticleScrollingEnabled() { 
    return verticleScrollingEnabled; 
} 

@Override 
public int computeVerticalScrollRange() { 

    if (isVerticleScrollingEnabled()) 
     return super.computeVerticalScrollRange(); 
    return 0; 
} 


@Override 
public boolean onInterceptTouchEvent(MotionEvent e) { 

    if(isVerticleScrollingEnabled()) 
     return super.onInterceptTouchEvent(e); 
    return false; 

} 



public MyRecycler(Context context) { 
    super(context); 
} 
public MyRecycler(Context context, @Nullable AttributeSet attrs) { 
    super(context, attrs); 
} 
public MyRecycler(Context context, @Nullable AttributeSet attrs,  int defStyle) { 
     super(context, attrs, defStyle); 
    } 
} 

は通常のRecyclerView 希望はあなたを助け続けておきます。

+0

ありがとうございました。あなたのコードは本当に私を助けました.. –

+0

@ user6071487私の答えを受け入れ、それは他の人を助けるかもしれません –

関連する問題