Tôi đang cố gắng phát hiện một sự kiện chạy trốn trên một ứng dụng Android đơn giản, nhưng đối số MotionEvent
đầu tiên luôn là rỗng. Tại sao phương thức onFling được gọi với một đối số null? Các Android documentation nói rằng nó được gọi khi một sự kiện fling xảy ra với ban đầu trên MotionEvent xuống và phù hợp với MotionEvent.Android SimpleOnGestureListener.onFling nhận được một MotionEvent rỗng
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;
}
}
Các Hoạt động chính có phương pháp này onTouchEvent:
GestureDetector flingDetector = new GestureDetector(new MyGestureDetector());
@Override
public boolean onTouchEvent(MotionEvent event) {
if (flingDetector.onTouchEvent(event)) {
return true;
}
return super.onTouchEvent(event);
}
Tôi đã làm việc đó, nhưng tôi chưa bao giờ có thể xác định điều cuối cùng đã làm.Giải pháp của bạn không áp dụng trong trường hợp của tôi, vì vậy tôi đã chấp nhận câu trả lời của bạn. Tôi vẫn muốn biết tại sao nó không hoạt động. – mcrumley
Tôi cũng thế. Tôi muốn biết tại sao nó không hoạt động tốt. Hy vọng ai đó trả lời điều đó. –
Bạn có may mắn theo dõi nguyên nhân của việc này không? Tôi đang gặp vấn đề tương tự nhưng dường như không thể làm cho nó hoạt động ngay cả với phương thức onFling đang hoạt động chính. –