在 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);
}
我试图弄清楚为什么这是必要的。在该教程的示例中,我删除了对父类(super class)的调用,只是返回了 this.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/