2017-03-17 15 views
2

GridLayoutManagerを持つRecyclerviewを持っています。子アイテムの内部には垂直なRecyclerViewがあります。ここではスクリーンショットです:RecyclerView内のRecyclerViewはスクロールしません

enter image description here

私は、このシナリオ用のアダプタを作成しました。それは正しく表示されますが、Recyclerviewは内部にいくつのアイテムが入っていてもスクロールしません。誰も内部とメインRecyclerViewsのスクロールを行う方法を提案することはできますか?

+3

は 'あなたが' rv.setNestedScrollingEnabled(false)を設定することがありますか? – Piyush

+0

はい私はしようとしましたが動作しませんでした –

答えて

7

解決策が見つかりました。 Recyclerviewがタッチイベントを受け取った場合、親のタッチイベントを無効にしなければなりませんでした。ここでは私のために働いたコードスニペットは、次のとおりです。

RecyclerView.OnItemTouchListener mScrollTouchListener = new RecyclerView.OnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
     int action = e.getAction(); 
     switch (action) { 
      case MotionEvent.ACTION_MOVE: 
       rv.getParent().requestDisallowInterceptTouchEvent(true); 
       break; 
     } 
     return false; 
    } 

    @Override 
    public void onTouchEvent(RecyclerView rv, MotionEvent e) { 

    } 

    @Override 
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

    } 
}; 

recyclerView.addOnItemTouchListener(mScrollTouchListener); 

私はここで答えを見つけました:Recyclerview inside Scrollview

+0

これは、子ビューを適用するためのものです。魅力のように働いた。 – Fattum

+0

は問題なく動作します。良い。それはあまりにも厳密に動作します。 –

+0

アイテムをタッチした後に垂直方向にスクロールしても、それはまだ水平スクロールのスコープ内にあります。 –

関連する問題