//移动模式,是否纵向滚动 ,0此次滚动未设置,1是 ,2此次滚动不是纵向滚动
private int isVertical=0
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
int action = ev.getAction()
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.e("---->","donw")
isVertical = 0
downX = (int) ev.getRawX()
downY = (int) ev.getRawY()
break
case MotionEvent.ACTION_MOVE:
int moveY = (int) ev.getRawY()
int moveX = (int) ev.getRawX()
if(isVertical==0){//未确定则先确定一下
if(Math.abs(moveY - downY)>Math.abs(moveX - downX)){//纵向滚动
isVertical=1
}else{//非纵向滚动
isVertical=-1
}
}
if(isVertical==1){//纵向滚动则拦截事件
Log.e("---->","move true")
return true
}else{
Log.e("---->","move false")
return false
}
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
isVertical=0
break
default:
break
}
boolean b = super.onInterceptTouchEvent(ev)
Log.e("---->","return super"+b)
return b
}