Czy jest jakaś różnica między OnTouchListener
i OnClickListener
? Nie pytam z punktu widzenia programowania, ale z punktu widzenia User Experience.
Który z nich jest lepszy w użyciu?
Czy musimy wdrożyć oba?
który z nich jest lepszy w użyciu?
To naprawdę zależy od twoich wymagań.
onTouch
daje zdarzenie ruchu. W ten sposób możesz robić wiele wymyślnych rzeczy, ponieważ pomaga to oddzielić stan ruchu. Żeby wymienić tylko kilka:
Są to typowe czynności, które zwykle wdrażamy, aby uzyskać pożądany efekt, taki jak przeciąganie widoku na ekranie.
Z drugiej strony, onClick
nie daje wiele oprócz tego, który widok interakcji użytkownika. onClick
jest kompletnym wydarzeniem obejmującym skupienie, naciśnięcie i zwolnienie. Więc masz nad tym niewielką kontrolę. Jedna strona do góry jest bardzo prosta do wykonania.
czy musimy wdrożyć oba?
Nie jest to konieczne, chyba że chcesz zepsuć użytkownika. Jeśli potrzebujesz tylko prostego zdarzenia kliknięcia, przejdź do onClick
. Jeśli chcesz czegoś więcej niż kliknięcia, idź onTouch
. Wykonanie obu komplikuje proces.
Z punktu widzenia użytkownika jest to niezauważalne, jeśli wdrażasz onTouch
ostrożnie, aby wyglądać onClick
.
Zdarzenie „Dotyk” ma miejsce, gdy ktoś przyłoży palec do ekranu. Jest wywoływana przez ruch palca, w dół, przeciąganie i w górę. „Kliknięcie” nie musi nawet pochodzić z ekranu. Może to być ktoś, kto naciska klawisz Enter.
Użyj,
OnTouchListener
gdy chcesz otrzymywać wydarzenia z czyjegoś palca na ekranie.Użyj,
OnClickListener
gdy chcesz wykryć kliknięcia.źródło
onClickListener
jest używany za każdym razem, gdy zostanie zgłoszone zdarzenie click dla dowolnego widoku, na przykład: click event dla Button, ImageButton.onTouchListener
jest używany, gdy chcesz wdrożyć funkcję dotykową, na przykład, jeśli chcesz uzyskać współrzędne ekranu w miejscu dotknięcia.z oficjalnego dokumentu, definicje obu to:
onClickListner
: Definicja interfejsu wywołania zwrotnego po kliknięciu widoku.onTouchListener
: Definicja interfejsu dla wywołania zwrotnego, które ma być wywołane, gdy do tego widoku zostanie wysłane zdarzenie dotykowe. Wywołanie zwrotne zostanie wywołane przed przekazaniem zdarzenia dotyku do widoku.źródło
Jednym z dobrych powodów używania zdarzeń ontouch zamiast zdarzeń onclick jest uzyskanie szybszej odpowiedzi po kliknięciu przez użytkownika. Gdy zdarzenie onclick ma opóźnienie w udzieleniu odpowiedzi i podjęciu wymaganego działania. Zdarzenia ontouch są lepsze do dostarczania wydajnych mobilnych aplikacji internetowych.
źródło
OnClickListener
- służy do podstawowego celu, gdy wystarczy kliknięcie od użytkownika, tj. kliknięcie przycisku, bez przeciągania lub gestów na ekranieOnTouchListener
jest w zasadzie bardziej precyzyjną kontrolką niż OnClickListener. Wykonuje i działa po naciśnięciu / zwolnieniu na ekranie Umożliwia użytkownikowi kombinację ruchu, dotknięcia w dół, dotyku w górę, przeciągnięcia palcem lub dowolnego ruchu na ekranieźródło
Wolisz używać onTouch. Podaj przykład: kiedy masz w nim ViewPager i TextView. jeśli zaimplementujesz setOnClickListener na textView, nie będziesz mógł przesuwać ViewPagera po dotknięciu / przesunięciu w TextView
źródło