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/

10-09 04:43