如下代码主要解决两个问题:
解决ViewPager嵌套垂直RecyclerView嵌套水平RecyclerView横向滑动到底后不滑动ViewPager
解决思路: 继承RecyclerView,重写dispatchTouchEvent,根据ACTION_MOVE的方向判断是否调用getParent().requestDisallowInterceptTouchEvent去阻止父view拦截点击事件
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
/*---解决垂ViewPager嵌套直RecyclerView嵌套水平RecyclerView横向滑动到底后不滑动ViewPager start ---*/
ViewParent parent =this;
while(!((parent = parent.getParent()) instanceof ViewPager));// 循环查找viewPager
parent.requestDisallowInterceptTouchEvent(true);
/*---解决垂ViewPager嵌套直RecyclerView嵌套水平RecyclerView横向滑动到底后不滑动ViewPager start ---*/
return super.dispatchTouchEvent(ev);
}
解决垂直RecyclerView嵌套水平RecyclerView横向滑动不流畅问题
解决思路:循环查找父亲View是否为ViewPager,如果是,则阻止父view拦截事件
@Overrid