Existe alguma diferença entre OnTouchListener
e OnClickListener
? Não estou perguntando do ponto de vista da programação, mas do ponto de vista da experiência do usuário.
Qual é melhor usar?
Precisamos implementar ambos?
qual é melhor usar?
Realmente depende de sua necessidade.
onTouch
dá a você Motion Event. Assim, você pode fazer muitas coisas sofisticadas, pois isso ajuda a separar o estado de movimento. Apenas para citar alguns:
Essas são ações comuns que geralmente implementamos para obter o resultado desejado, como arrastar a visualização na tela.
Por outro lado, onClick
não oferece muito, exceto qual visualização o usuário interage. onClick
é um evento completo que compreende focalizar, pressionar e liberar. Portanto, você tem pouco controle sobre isso. Por outro lado, é muito simples de implementar.
precisamos implementar ambos?
Não é necessário, a menos que você queira bagunçar o seu usuário. Se você deseja apenas um evento de clique simples, vá para onClick
. Se você quer mais do que clicar, vá em frente onTouch
. Fazer as duas coisas complicará o processo.
Do ponto de vista do usuário, é imperceptível se você implementar com onTouch
cuidado para parecer onClick
.
Um evento de "Toque" ocorre quando alguém coloca o dedo na tela. É chamado ao longo do movimento do dedo, para baixo, arrastar e subir. Um "clique" nem precisa sair da tela. Pode ser alguém pressionando a tecla Enter.
Use
OnTouchListener
quando quiser receber eventos do dedo de alguém na tela.Use
OnClickListener
quando quiser detectar cliques.fonte
onClickListener
é usado sempre que um evento click para qualquer visão é gerado, digamos, por exemplo: evento click para Button, ImageButton.onTouchListener
é usado sempre que você deseja implementar o tipo de funcionalidade Touch, digamos, por exemplo, se você deseja obter as coordenadas da tela onde você toca exatamente.do documento oficial, a definição de ambos são:
onClickListner
: Definição de interface para um retorno de chamada a ser invocado quando uma visualização é clicada.onTouchListener
: Definição de interface para um retorno de chamada a ser invocado quando um evento de toque é despachado para esta visualização. O retorno de chamada será invocado antes que o evento de toque seja fornecido à visualização.fonte
Um bom motivo para usar eventos ontouch em vez de eventos onclick é obter uma resposta mais rápida ao clicar do usuário. Onde o evento onclick sofre um atraso para responder e prosseguir com a ação necessária. Os eventos ontouch são melhores para fornecer aplicativos da web móvel de alto desempenho.
fonte
OnClickListener
- é usado para uma finalidade básica, quando precisamos apenas de um clique de um usuário, ou seja, clicar em um botão, sem arrastar ou fazer gestos na telaOnTouchListener
é basicamente um controle mais ajustado do que OnClickListener. Ele executa uma ação ao pressionar / soltar na tela. Permite ao usuário uma combinação de movimento, toque para baixo, toque para cima, arraste com o dedo ou qualquer gesto de movimento na telafonte
Prefira usar o onTouch. Dê um exemplo: quando você tem um ViewPager e um TextView nele. se você implementar setOnClickListener em textView, não será capaz de deslizar o ViewPager ao tocar / deslizar no TextView
fonte