GestureDetector.SimpleOnGestureListener und GestureDetectorCompat funktionieren nicht. Was ist falsch an meinem Code?

8

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:

%Vor%

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?

    
Violet Giraffe 01.11.2013, 14:41
quelle

1 Antwort

18

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.

    
iversoncru 21.03.2014, 07:36
quelle