我有一个带有GridLayoutManager的Recyclerview,其子项目里面可能有一个垂直的RecyclerView。这是截图:
我已为此方案创建了适配器。它显示正确但内部Recyclerview不滚动,无论其中有多少项。任何人都可以建议如何使内部和主要的RecyclerViews滚动?
答案 0 :(得分:18)
我找到了解决方案。我只需要在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