Gibt es einen Unterschied zwischen OnTouchListener
und OnClickListener
? Ich frage nicht aus Sicht der Programmierung, sondern aus Sicht der Benutzererfahrung.
Welches ist besser zu verwenden?
Müssen wir beides implementieren?
welches ist besser zu benutzen?
Es hängt wirklich von Ihrer Anforderung ab.
onTouch
gibt Ihnen Bewegungsereignis. Auf diese Weise können Sie viele ausgefallene Dinge tun, da dies Ihnen hilft, den Bewegungszustand zu trennen. Nur um ein paar zu nennen:
Dies sind übliche Aktionen, die wir normalerweise implementieren, um das gewünschte Ergebnis zu erzielen, z. B. das Ziehen der Ansicht auf dem Bildschirm.
Auf der anderen Seite onClick
gibt es nicht viel, außer welcher Ansicht Benutzer interagiert. onClick
ist eine komplette Veranstaltung, die das Fokussieren, Drücken und Loslassen umfasst. Sie haben also wenig Kontrolle darüber. Eine Seite nach oben ist, dass es sehr einfach zu implementieren ist.
Müssen wir beide implementieren?
Es ist nicht notwendig, es sei denn, Sie möchten Ihren Benutzer durcheinander bringen. Wenn Sie nur ein einfaches Klickereignis wünschen, wählen Sie onClick
. Wenn Sie mehr als nur klicken möchten, wählen Sie onTouch
. Beides zu tun, erschwert den Prozess.
Aus Anwendersicht ist es unbemerkt, wenn Sie onTouch
sorgfältig implementieren , um so auszusehen onClick
.
Ein "Touch" -Ereignis ist, wenn jemand seinen Finger auf den Bildschirm legt. Es wird während der Bewegung des Fingers nach unten, nach unten und nach oben aufgerufen. Ein "Klick" muss nicht einmal vom Bildschirm kommen. Es könnte jemand sein, der die Eingabetaste drückt.
Verwenden
OnTouchListener
Sie diese Option, wenn Sie Ereignisse von einem Finger auf dem Bildschirm empfangen möchten.Verwenden
OnClickListener
Sie diese Option, wenn Sie Klicks erkennen möchten.quelle
onClickListener
wird immer dann verwendet, wenn ein Klickereignis für eine Ansicht ausgelöst wird, z. B. Klickereignis für Schaltfläche, ImageButton.onTouchListener
wird immer dann verwendet, wenn Sie Touch-Funktionen implementieren möchten, z. B. wenn Sie Bildschirmkoordinaten erhalten möchten, bei denen Sie genau berühren.Aus dem offiziellen Dokument sind die Definitionen für beide:
onClickListner
: Schnittstellendefinition für einen Rückruf, der beim Klicken auf eine Ansicht aufgerufen wird.onTouchListener
: Schnittstellendefinition für einen Rückruf, der aufgerufen wird, wenn ein Berührungsereignis an diese Ansicht gesendet wird. Der Rückruf wird aufgerufen, bevor das Berührungsereignis an die Ansicht übergeben wird.quelle
Ein guter Grund, ontouch-Ereignisse anstelle von onclick-Ereignissen zu verwenden, besteht darin, beim Klicken des Benutzers eine schnellere Antwort zu erhalten. Wenn das Ereignis onclick eine Verzögerung aufweist, wenn es reagiert und mit den erforderlichen Maßnahmen fortfährt. ontouch-Ereignisse eignen sich besser für die Bereitstellung leistungsstarker mobiler Web-Apps.
quelle
OnClickListener
- wird für einen grundlegenden Zweck verwendet, wenn wir nur einen Klick eines Benutzers benötigen, dh einen Klick auf eine Schaltfläche, kein Ziehen oder Gesten auf dem BildschirmOnTouchListener
ist im Grunde ein fein abgestimmtes Steuerelement als OnClickListener. Es führt eine Aktion / Aktion auf einer Presse / Freigabe auf dem Bildschirm aus und ermöglicht dem Benutzer eine Kombination aus Bewegung, Abwärtsbewegung, Aufwärtsberührung, Fingerziehen oder einer beliebigen Bewegungsgeste auf dem Bildschirmquelle
Verwenden Sie lieber onTouch. Geben Sie ein Beispiel: Wenn Sie einen ViewPager und eine TextView darin haben. Wenn Sie setOnClickListener in textView implementieren, können Sie den ViewPager nicht wischen, wenn Sie TextView berühren / wischen
quelle