我覆盖了dispatchTouchEvent()方法,以检测活动中的每一次触摸。
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
System.out.println("android test "+event.toString());
return super.dispatchTouchEvent(event);
}
但是此方法仅捕获ACTION_UP,ACTION_DOWN和ACTION_MOVE事件,而不捕获ACTION_CANCEL事件。这可能是什么原因?
最佳答案
@pskink的答案是正确的。即ACTION_CANCEL是系统事件。
“ ACTION_CANCEL是在父级控制运动时发生的,例如,当用户在列表视图中拖动足够多以使其开始滚动而不是让您按下i内部的按钮时,就会发生。
http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent%28android.view.MotionEvent%29