根据事件的分发机制,如果子View消耗了down事件,那么就会继续处理up,和move事件。那么这个时候父view是没有办法move的。
我们想完成这样的需求,就需要去拦截事件
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getRawX();
int y = (int) event.getRawY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Down(x, y);
break;
case MotionEvent.ACTION_MOVE:
Move(x, y);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
break;
}
return super.onTouchEvent(event);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
Log.i("touch" , "dispatchTouchEvent" + event.getAction());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isMoveinge = false;