在http://www.techotopia.com/index.php/Detecting_Common_Gestures_using_the_Android_Gesture_Detector_Class的教程中,作者包括一个对super.ontouchevent(event)的调用,并提醒您不要忘记它:
@Override
public boolean onTouchEvent(MotionEvent event) {
this.gDetector.onTouchEvent(event);
// Be sure to call the superclass implementation
return super.onTouchEvent(event);
}
我想弄清楚为什么这是必要的。在那个教程的例子中,我删除了对超类的调用,只返回了这个.gdetector.ontouchevent(event),结果没有变化。
最佳答案
来自Android源代码(Activity.java):
public boolean onTouchEvent(MotionEvent event) {
if (mWindow.shouldCloseOnTouch(this, event)) {
finish();
return true;
}
return false;
}
如果重写此方法并且不调用
super.onTouchEvent(event)
,则不会执行该代码。大多数情况下,你不希望这种情况发生,即使它似乎没有任何明显的效果。关于android - 在Android中,当覆盖触摸事件时,为什么需要调用super.onTouchEvent(event)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26575651/