lequel est préférable d'utiliser?
Cela dépend vraiment de vos besoins.
onTouch
vous donne un événement de mouvement. Ainsi, vous pouvez faire beaucoup de choses fantaisistes car cela vous aide à séparer l'état de mouvement. Juste pour en nommer quelques-uns:
- ACTION_UP
- ACTION_DOWN
- ACTION_MOVE
Ce sont des actions courantes que nous implémentons généralement pour obtenir le résultat souhaité, comme faire glisser la vue sur l'écran.
D'un autre côté, onClick
cela ne vous donne pas grand-chose sauf quelle vue l'utilisateur interagit. onClick
est un événement complet comprenant la mise au point, la pression et la libération. Donc, vous avez peu de contrôle sur cela. Un côté positif est qu'il est très simple à mettre en œuvre.
devons-nous mettre en œuvre les deux?
Ce n'est pas nécessaire à moins que vous ne vouliez déranger votre utilisateur. Si vous voulez juste un simple événement de clic, optez pour onClick
. Si vous voulez plus que cliquer, allez-y onTouch
. Faire les deux compliquera le processus.
Du point de vue de l'utilisateur, il est imperceptible si vous mettez en œuvre onTouch
soigneusement pour ressembler onClick
.
Un événement «Touch» est lorsque quelqu'un met son doigt sur l'écran. Il est appelé tout au long du mouvement du doigt, vers le bas, la traînée et le haut. Un "clic" n'a même pas besoin de provenir de l'écran. Il peut s'agir de quelqu'un qui appuie sur la touche Entrée.
À utiliser
OnTouchListener
lorsque vous souhaitez recevoir des événements du doigt de quelqu'un sur l'écran.À utiliser
OnClickListener
lorsque vous souhaitez détecter des clics.la source
onClickListener
est utilisé chaque fois qu'un événement de clic pour une vue est déclenché, par exemple: événement de clic pour Button, ImageButton.onTouchListener
est utilisé chaque fois que vous souhaitez implémenter une fonctionnalité de type Touch, par exemple si vous souhaitez obtenir les coordonnées de l'écran là où vous touchez exactement.D'après la documentation officielle, les deux définitions sont:
onClickListner
: Définition d'interface pour un rappel à appeler lorsqu'un clic est effectué sur une vue.onTouchListener
: Définition d'interface pour un rappel à invoquer lorsqu'un événement tactile est distribué à cette vue. Le rappel sera appelé avant que l'événement tactile ne soit donné à la vue.la source
Une bonne raison d'utiliser les événements ontouch sur les événements onclick est d'obtenir une réponse plus rapide lorsque l'utilisateur clique. Lorsque l'événement onclick souffre d'un retard dans la réponse et l'action requise. Les événements ontouch sont plus efficaces pour fournir des applications Web mobiles hautement performantes.
la source
OnClickListener
- est utilisé dans un but basique, lorsque nous avons juste besoin d'un clic d'un utilisateur, c'est-à-dire d'un clic sur un bouton, pas de glisser ou de gestes sur l'écranOnTouchListener
est fondamentalement un contrôle plus précis que OnClickListener. Il effectue et action sur une pression / relâchement sur l'écran Il permet à l'utilisateur avec une combinaison de mouvement, de toucher vers le bas, de toucher vers le haut, de glisser du doigt ou de tout mouvement de mouvement sur l'écranla source
Préférez utiliser onTouch. Donnez-vous un exemple: lorsque vous avez un ViewPager et un TextView dedans. si vous implémentez setOnClickListener sur textView, vous ne pourrez pas faire glisser le ViewPager lorsque vous touchez / glissez sur TextView
la source