¿Hay alguna diferencia entre OnTouchListener
y OnClickListener
? No pregunto desde el punto de vista de la programación, sino desde el punto de vista de la experiencia del usuario.
¿Cuál es mejor para usar?
¿Necesitamos implementar ambos?
cual es mejor usar?
Realmente depende de sus necesidades.
onTouch
le ofrece un evento de movimiento. Por lo tanto, puede hacer muchas cosas elegantes, ya que lo ayuda a separar el estado de movimiento. Sólo para nombrar unos pocos:
Esas son acciones comunes que generalmente implementamos para obtener el resultado deseado, como arrastrar la vista en la pantalla.
Por otro lado, onClick
no le da mucho, excepto qué vista interactúa el usuario. onClick
es un evento completo que comprende enfocar, presionar y soltar. Entonces, tienes poco control sobre eso. Un lado hacia arriba es que es muy sencillo de implementar.
¿Necesitamos implementar ambos?
No es necesario a menos que quiera meterse con su usuario. Si solo desea un evento de clic simple, hágalo onClick
. Si quieres más que un clic, hazlo onTouch
. Hacer ambas cosas complicará el proceso.
Desde el punto de vista del usuario, es imperceptible si lo implementa con onTouch
cuidado para que se vea como onClick
.
Un evento de "toque" es cuando alguien pone su dedo en la pantalla. Se llama a través del movimiento del dedo, hacia abajo, hacia arriba y hacia abajo. Ni siquiera es necesario que un "clic" provenga de la pantalla. Podría ser alguien presionando la tecla Enter.
Úselo
OnTouchListener
cuando desee recibir eventos del dedo de alguien en la pantalla.Úselo
OnClickListener
cuando desee detectar clics.fuente
onClickListener
se utiliza siempre que se genera un evento de clic para cualquier vista, por ejemplo: evento de clic para Button, ImageButton.onTouchListener
se utiliza siempre que desee implementar el tipo de funcionalidad táctil, por ejemplo, si desea obtener las coordenadas de la pantalla donde toca exactamente.del documento oficial, la definición de ambos es:
onClickListner
: Definición de interfaz para invocar una devolución de llamada cuando se hace clic en una vista.onTouchListener
: Definición de interfaz para que se invoque una devolución de llamada cuando se envía un evento táctil a esta vista. La devolución de llamada se invocará antes de que se proporcione el evento táctil a la vista.fuente
Una buena razón para usar eventos ontouch sobre eventos onclick es obtener una respuesta más rápida cuando el usuario hace clic. Donde el evento onclick sufre un retraso en responder y proceder con la acción requerida. Los eventos ontouch son mejores para ofrecer aplicaciones web móviles de alto rendimiento.
fuente
OnClickListener
- se usa para un propósito básico, cuando solo necesitamos un clic de un usuario, es decir, hacer clic en un botón, sin arrastrar ni hacer gestos en la pantallaOnTouchListener
es básicamente un control más ajustado que OnClickListener. Realiza una acción al presionar / soltar en la pantalla.Permite al usuario con una combinación de movimiento, toque hacia abajo, toque hacia arriba, arrastre con el dedo o cualquier gesto de movimiento en la pantalla.fuente
Prefiere usar onTouch. Darle un ejemplo: cuando tiene un ViewPager y un TextView en él. si implementa setOnClickListener en textView, no podrá deslizar el ViewPager cuando toque / deslice el TextView
fuente