2012-02-03 16 views
69

C'è qualche differenza tra OnTouchListener e OnClickListener? Non sto chiedendo dal punto di vista della programmazione, ma dal punto di vista dell'esperienza utente.Differenza tra OnTouch e OnClick Android

Quale è meglio usare?

Dobbiamo implementare entrambi?

risposta

81

quale è meglio usare?

In realtà dipende dalle vostre esigenze. onTouch ti offre Motion Event. Quindi, puoi fare un sacco di cose fantasiose in quanto ti aiuta a separare lo stato di movimento. Solo per citarne alcuni

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

Queste sono azioni comuni che di solito implementare per ottenere il risultato desiderio, come il trascinamento vista sullo schermo.

D'altra parte, onClick non ti dà molto eccetto quale visualizzazione interagisce con l'utente. onClick è un evento completo che comprende messa a fuoco, pressione e rilascio. Quindi, hai poco controllo su di esso. Un lato in alto è molto semplice da implementare.

dobbiamo implementare entrambi?

Non è necessario se non si vuole rovinare il proprio utente.Se vuoi semplicemente un evento click, vai su onClick. Se vuoi più di un clic, vai su onTouch. Fare entrambi complicherà il processo.

Dal punto di vista dell'utente, è impercettibile se si implementa onTouch con attenzione per assomigliare a onClick.

+2

Se hai bisogno di controllo, vai su onTouch. Per la maggior parte dei casi, onClick farà. Vedi la risposta di PH7. – drulabs

+0

Sto ancora cercando di capire quale usare. Se ho 4 viste, 3 delle quali richiedono sia un clic sia uno scorrimento mentre il 4 ° solo un clic. So che posso usare onTouch solo come clic o scorri per le prime 3 visualizzazioni, ma per quanto riguarda il 4 °? Devo implementare onClick per una vista o semplicemente utilizzare onTouch poiché è già stato chiamato ..? – cjayem13

+0

Va notato che potrebbe essere necessario utilizzare onTouch per ottenere determinati risultati, nel qual caso il punto di vista dell'utente deve essere dannato. FE, se si desidera bloccare la tastiera virtuale da mostrare, in modo da poter fornire il proprio, deve essere via onTouch. TIL onClick non lo farà. – ChiefTwoPencils

19

Un evento "Tocca" è quando qualcuno mette il dito sullo schermo. Viene chiamato per tutto il movimento del dito, verso il basso, trascinare e verso l'alto. Un "clic" non deve nemmeno provenire dallo schermo. Potrebbe essere qualcuno che preme il tasto Invio.

Utilizzare OnTouchListener quando si desidera ricevere eventi dal dito di qualcuno sullo schermo.

Utilizzare OnClickListener quando si desidera rilevare i clic.

+0

Ho visto qualche sviluppatore che utilizza l'evento di tocco per il pulsante, quale sarà la ragione? Non ho provato al telefono ma c'è qualche improvvisazione di performance? –

+0

@NixitPatel Nessuna buona ragione viene in mente senza vedere la loro fonte. –

+0

vero, ma ora ho trovato la mia risposta ... con l'aiuto di voi ragazzi e un approccio particellare. non c'è bisogno di preoccuparsi, grazie per aver chiesto –

7
  • onClickListener viene utilizzato ogni volta che viene sollevato un evento click per qualsiasi vista, diciamo per esempio: eventi Click per Button, ImageButton.

  • onTouchListener viene utilizzato ogni volta che si desidera implementare funzionalità di tipo Touch, ad esempio se si desidera ottenere le coordinate dello schermo dove si tocca esattamente.

da doc ufficiale, definizione per entrambi sono:

  • onClickListner: definizione di interfaccia per un callback da richiamare quando la vista viene cliccato.
  • onTouchListener: definizione dell'interfaccia per un callback da richiamare quando un evento tattile viene inviato a questa vista. La richiamata verrà richiamata prima che l'evento tattile venga assegnato alla vista.
+1

Ho visto alcuni sviluppatori che utilizzano l'evento touch per il pulsante quale sarà la ragione per questo? Non ho provato al telefono ma c'è qualche improvvisazione di performance? –

7

Un buon motivo per utilizzare gli eventi onuch sugli eventi onclick è ottenere una risposta più rapida sul clic dell'utente. Dove l'evento onclick subisce un ritardo nella risposta e procede con l'azione richiesta. gli eventi onuch sono migliori per la distribuzione di app web mobili ad alte prestazioni.

0

OnClickListener - viene utilizzato per uno scopo di base, quando abbiamo solo bisogno di un clic da un esempio utente, clic di un pulsante, senza trascinare o gesti sullo schermo

OnTouchListener è fondamentalmente un controllo più perfezionato rispetto OnClickListener. Esegue e azione su una stampa/rilascio sullo schermo Consente all'utente con combinazione di spostamento, down-touch, up-touch, trascinamento dito o qualsiasi gesto di movimento sullo schermo

2

Preferisco usare onTouch. Darti un esempio: quando hai un ViewPager e un TextView in esso. se si implementa setOnClickListener su textView, non sarà possibile scorrere il ViewPager quando si tocca/scorri sul TextView

Problemi correlati