GridLayoutManagerを持つRecyclerviewを持っています。子アイテムの内部には垂直なRecyclerViewがあります。ここではスクリーンショットです:RecyclerView内のRecyclerViewはスクロールしません
私は、このシナリオ用のアダプタを作成しました。それは正しく表示されますが、Recyclerviewは内部にいくつのアイテムが入っていてもスクロールしません。誰も内部とメインRecyclerViewsのスクロールを行う方法を提案することはできますか?
GridLayoutManagerを持つRecyclerviewを持っています。子アイテムの内部には垂直なRecyclerViewがあります。ここではスクリーンショットです:RecyclerView内のRecyclerViewはスクロールしません
私は、このシナリオ用のアダプタを作成しました。それは正しく表示されますが、Recyclerviewは内部にいくつのアイテムが入っていてもスクロールしません。誰も内部とメインRecyclerViewsのスクロールを行う方法を提案することはできますか?
解決策が見つかりました。 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
これは、子ビューを適用するためのものです。魅力のように働いた。 – Fattum
は問題なく動作します。良い。それはあまりにも厳密に動作します。 –
アイテムをタッチした後に垂直方向にスクロールしても、それはまだ水平スクロールのスコープ内にあります。 –
は 'あなたが' rv.setNestedScrollingEnabled(false)を設定することがありますか? – Piyush
はい私はしようとしましたが動作しませんでした –