Ich versuche, Doppeltipp-Ereignisse mit dem OnTouchListener abzufangen. Ich denke, ich würde ein Long für motionEvent.ACTION_DOWN und ein anderes Long für ein zweites motionEvent.ACTION_DOWN setzen und die Zeit zwischen den beiden messen und dann etwas damit machen. Allerdings fällt es mir schwer, genau herauszufinden, wie ich das angehen soll. Ich benutze Switchcases, um Multitouch-Events aufzunehmen, also versuche ich nicht, all dies neu zu versuchen, um GestureDetector zu implementieren (und es ist leider unmöglich, gleichzeitig ontouchlistener und Gesturedetector zu implementieren). Irgendwelche Ideen würden sehr helfen:
%Vor%Ich habe dieses Problem früher angesprochen. Dazu muss ein Handler eine bestimmte Zeit warten, bis er auf den zweiten Klick wartet: Wie kann ich ein Single Click Event und Double Click Event erstellen, wenn die Menu Taste gedrückt wird?
In Ihrer Klassendefinition:
%Vor%Dann in Ihrem Klassenkörper:
%Vor%Dies wurde von einer Antwort in DoubleTap in Android von Ссылка
Mit der Hilfsklasse SimpleGestureListener, die den GestureListener und OnDoubleTapListener implementiert, brauchen Sie nicht viel zu tun.
%Vor%Wenn Sie das Doppeltippen implementieren möchten, sollten Sie sich den Quellcode von Statusdetektor . Es ist sehr einfach und klar.
Hier ist meine Lösung.
Wichtig war mir eine schnelle und klare Trennung von "single tap" und "double tap".
Ich probierte GestureDetector
zuerst aus, hatte aber sehr schlechte Ergebnisse. Vielleicht ein Ergebnis meiner verschachtelten Verwendung von Scrollviews - wer weiß ...
Ich konzentriere mich auf MotionEvent.ACTION_UP
und die ID des angezapften Elements. Um den ersten Tap am Leben zu erhalten, verwende ich eine Handler
, die eine verzögerte Nachricht (350ms) sendet, damit der Benutzer etwas Zeit hat, seinen zweiten Tipp auf den ImageView
zu setzen. Wenn der Benutzer ein zweites Mal auf ein Element mit der identischen ID klickt, nehme ich dies als Doppeltipp, entferne die verzögerte Nachricht und fülle meinen benutzerdefinierten Code für "Doppeltipp". Wenn der Benutzer ein Element mit einer anderen ID tappt, nehme ich dies als neues Tippen und erzeuge ein weiteres Handler
dafür.
Globale Klassenvariablen
%Vor%Codebeispiel
%Vor%Tags und Links android ontouchlistener