嵌套的RecyclerView,如Google Play商店应用

Ars*_*ail 13 android android-recyclerview

我目前正致力于复制Play商店应用中实现的UI模式.为了实现这样的行为,我使用了Vertical RecyclerView作为外部视图,并RecyclerView在外部Vertical的适配器内添加了一个水平RecyclerView.

我目前面临的问题是当外部RecyclerView滚动时,内部水平RecyclerView不能捕捉到滚动事件,但是当外部RecyclerView不滚动时,我们可以RecyclerView平滑地滚动水平.

如果有人可以提供帮助,请留下您的评论.Cou可以测试Play商店中的功能RecyclerView,即使外部RecyclerView滚动,也可以启用内部水平滚动.

Play商店应用:

链接到图像

Rea*_*hed 5

这是实现此类的教程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;
    }
}; 
Run Code Online (Sandbox Code Playgroud)

然后将触摸侦听器设置为视图。

view.findViewById(R.id.recyclerView).setOnTouchListener(mTouchListener);
Run Code Online (Sandbox Code Playgroud)