Ich folge Häufige Gesten erkennen . Ich habe mit android-support-v4.jar
library verlinkt, um GestureDetectorCompat
zu erhalten, und mein Code scheint genauso zu sein wie in der Anleitung, außer dass ich Gesten in meiner benutzerdefinierten Ansicht und nicht in der Aktivität erkenne:
Egal was ich mit dem Touchscreen mache, ich bekomme nur onLongPress
. In der Tat, wenn ich schnell tippe (schnell den Bildschirm berührend und loslassend), bekomme ich onLongPress
noch ein bisschen, nachdem ich meinen Finger vom Bildschirm entferne (vermutlich ist das eine lange Antipper-Verzögerung).
Was ist der Haken?
Ich zitiere Android-Leitfaden zum Erkennen häufiger Gesten :
Unabhängig davon, ob Sie GestureDetector.OnGestureListener verwenden oder nicht, empfiehlt es sich, eine onDown () -Methode zu implementieren, die true zurückgibt. Dies liegt daran, dass alle Gesten mit einer onDown () - Nachricht beginnen. Wenn Sie false von onDown () zurückgeben, wie es GestureDetector.SimpleOnGestureListener standardmäßig tut, nimmt das System an, dass Sie den Rest der Geste ignorieren möchten, und die anderen Methoden von GestureDetector.OnGestureListener werden nie aufgerufen. Dies kann unerwartete Probleme in Ihrer App verursachen. Das einzige Mal, dass Sie false von onDown () zurückgeben sollten, ist, wenn Sie wirklich eine ganze Geste ignorieren möchten.
Die Tatsache, dass Sie die Methode onDown()
nicht implementiert haben, verursachte Nebenwirkungen.
Tags und Links android gesture-recognition gestures