viewpager嵌套scrollview 造成scrollview没滑到顶部和底部的时候viewpager不能左右滑动
解决方法:重写scrollview的onInterceptTouchEvent
float mDownX;
float mDownY;
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
//ev.getRawX() 拿到相对于屏幕的坐标
mDownX = ev.getX();//拿到相对于控件本身的位置
mDownY = ev.getY();
getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_MOVE:
float moveX = ev.getX();
float moveY = ev.getY();
//计算x轴的变化量
float X = moveX - mDownX;
//计算y轴变化量
float Y = moveY - mDownY;
//计算x轴的变化量
float diffX = Math.abs(moveX - mDownX);
//计算y轴变化量
float diffY = Math.abs(moveY - mDownY);
getParent().requestDisallowInterceptTouchEvent(false);
return true;
}
break;
case MotionEvent.ACTION_UP:
break;
}
返回super可能会导致ACTION事件不响应
return super.onInterceptTouchEvent(ev);
// return true;
}
网友评论