Я пытаюсь обнаружить событие fling в простом приложении для Android, но первый аргумент MotionEvent
всегда равен нулю. Почему метод onFling вызывается с нулевым аргументом? Документация Android говорит, что она вызывается, когда происходит событие fling с начальным нажатием MotionEvent и соответствующим MotionEvent.
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// e1 always == null, return early a null reference exception
if (e1 == null) {
return false;
}
if (e1.getY() - e2.getY() > 120) {
handleFlingEvent();
return true;
}
return false;
}
}
Основная операция имеет этот метод onTouchEvent:
GestureDetector flingDetector = new GestureDetector(new MyGestureDetector());
@Override
public boolean onTouchEvent(MotionEvent event) {
if (flingDetector.onTouchEvent(event)) {
return true;
}
return super.onTouchEvent(event);
}