Pergunta

Na verdade eu estou tentando implementar um ontouchlistener no meu (1,5) aplicação android. Portanto, eu implementou o "ontouchlistener" para a classe, e então eu coloquei meu código no:

public boolean onTouchEvent (MotionEvent e){
 //code
}

O problema é que, se eu estou arrastando ao longo de um (por exemplo) Spinner ou EditTextView do que este método não é chamado. A única maneira de resolver este que eu descobri é adicionar um ontouchlistener a cada um dos pontos de vista manualmente:

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);

(tl é o ontouchlistener) Portanto, não há uma maneira de pegar o evento de toque antes que ele chegue a cada um desses pontos de vista? obrigado antecipadamente

Ripei

Foi útil?

Solução

O que exatamente você quer fazer - quer:

  • detectar gestos inteiras em alguns Activity.
  • Detect toques apenas para um determinado View

Se você deseja que o ex-:

Dê uma olhada neste exemplo: Fling detecção gesto de layout de grade.

Basicamente, você redirecionar todos os eventos de toque registrado em um GestureDetector. Ela compreende o que exatamente é a entrada do usuário (toque único, toque duplo, rolar, etc.) e chama o retorno de chamada correspondente em uma SimpleOnGestureListener, que você deve implementar.

Se você deseja que o último:

Você pode:

  1. Substituir onTouchEvent() do View.
  2. Implementar e onTouchListener gancho (se você deseja obter o toque antes de ser enviado a ele).

Se você quiser implementar onTouchListener, você estará fazendo o seu trabalho não no método onTouchEvent(), mas no método onTouch() da interface.

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top