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

时间:2015-12-31 17:05:19

标签: android android-recyclerview

我目前正致力于复制Play商店应用中实现的UI模式。为了实现此类行为,我使用垂直RecyclerView作为外部视图,并在外部垂直RecyclerView的适配器内添加了水平RecyclerView

我目前面临的问题是当外部RecyclerView滚动时,内部水平RecyclerView无法捕捉到滚动事件,但当外部RecyclerView不滚动时,我们可以顺利滚动水平RecyclerView

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

Play商店应用:

link to the image

1 个答案:

答案 0 :(得分:3)

此处a tutorial用于实施此类RecyclerView。您也可以考虑查看github repository

想法是在触摸内部RecyclerView时禁用外部RecyclerView的触摸检测。请参阅父RecyclerView适配器类中的实现here

// 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);