сенсорные прослушиватели и текстовые представления

StackOverflow https://stackoverflow.com/questions/2411495

  •  18-09-2019
  •  | 
  •  

Вопрос

На самом деле я пытаюсь внедрить ontouchlistener в свое приложение для Android (1.5).поэтому я реализовал «ontouchlistener» в классе, а затем поместил свой код в:

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

Проблема в том, что если я перетаскиваю (например) Spinner или EditTextView, этот метод не вызывается.Единственный способ решить эту проблему, который я понял, — это добавить ontouchlistener к каждому из этих представлений вручную:

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

(TL - это ontouchlistener), так что нет способа поймать событие Touch, прежде чем оно достигнет каждого из этих видов?заранее спасибо

Рипей

Это было полезно?

Решение

Что именно вы хотите сделать? Вы хотите:

  • Обнаружение целых жестов в некоторыхActivity.
  • Обнаруживать касания только для данногоView

Если вы хотите первое:

Взгляните на этот пример:Обнаружение жестов броска на макете сетки.

По сути, вы перенаправляете все зарегистрированные события касания на GestureDetector.Он понимает, что именно вводит пользователь (одиночное нажатие, двойное нажатие, прокрутка и т. д.), и вызывает соответствующий обратный вызов в SimpleOnGestureListener, который вы должны реализовать.

Если вы хотите последнее:

Вы также можете:

  1. Переопределить представление onTouchEvent().
  2. Орудие и крючок onTouchListener (если вы хотите получить контакт до его отправки).

Если вы хотите реализовать onTouchListener, вы будете делать свою работу не в onTouchEvent() метод, но в интерфейсе onTouch() метод.

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top