0
点赞
收藏
分享

微信扫一扫

解决RecyclerView嵌套,滑动冲突问题

前程有光 2021-09-19 阅读 46

解决RecyclerView嵌套时,子RecyclerView不能滑动,记录以下3种方法。

参考文章:https://www.jianshu.com/p/c5ccf0c38186

方法一:自定义父recyclerView并重写onInterceptTouchEvent()方法

//不拦截,继续分发下去
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
    return false;
}

方法二:子布局通知父布局不要拦截事件

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
     //父层ViewGroup不要拦截点击事件
    getParent().requestDisallowInterceptTouchEvent(true);
    return super.dispatchTouchEvent(ev);
}}

方法三:OnTouchListener优先级很高,通过这个来告诉父布局,不要拦截我的事件

childRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE) {
        v.getParent().requestDisallowInterceptTouchEvent(true);
    } else {
        v.getParent().requestDisallowInterceptTouchEvent(false);
    }
    return false;
    }
});

每天进步一点点。。。(2021-05-10)

举报

相关推荐

0 条评论