我目前正致力于复制Play商店应用中实现的UI模式.为了实现这样的行为,我使用了Vertical RecyclerView
作为外部视图,并RecyclerView
在外部Vertical的适配器内添加了一个水平RecyclerView
.
我目前面临的问题是当外部RecyclerView
滚动时,内部水平RecyclerView
不能捕捉到滚动事件,但是当外部RecyclerView
不滚动时,我们可以RecyclerView
平滑地滚动水平.
如果有人可以提供帮助,请留下您的评论.Cou可以测试Play商店中的功能RecyclerView
,即使外部RecyclerView
滚动,也可以启用内部水平滚动.
Play商店应用:
这是实现此类的教程RecyclerView
。您也可以考虑查看github存储库。
这个想法是RecyclerView
当内部RecyclerView
被触摸时禁用外部的触摸检测。见执行此父RecyclerView
适配器类。
// Disable touch detection for parent recyclerView if we use vertical nested recyclerViews private View.OnTouchListener mTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { v.getParent().requestDisallowInterceptTouchEvent(true); return false; } };
然后将触摸侦听器设置为视图。
view.findViewById(R.id.recyclerView).setOnTouchListener(mTouchListener);