Open
Description
我觉得可以在调用requestDisallowInterceptTouchEvent的时候加个判断,判断当前为横向滑动,我是这样做的:
case MotionEvent.ACTION_DOWN:
// 记录手指按下的位置
mStartY = event.getY();
mStartX = event.getX();
mDragger = false;
..............
case MotionEvent.ACTION_MOVE:
// 获取当前手指位置
float endY = event.getY();
float endX = event.getX();
//获取X,Y滑动距离的绝对值
float distanceX = Math.abs(endX - mStartX);
float distanceY = Math.abs(endY - mStartY);
// 判断X轴位移大于Y轴距离
if ((distanceX > mTouchSlop && distanceX > distanceY) || mDragger) {
getParent().requestDisallowInterceptTouchEvent(true);
mDragger = true;
.............
}
case MotionEvent.ACTION_CANCEL:
mDragger = false;
.............
case MotionEvent.ACTION_UP:
mDragger = false;
.............