解决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)