Есть ли разница между OnTouchListener
и OnClickListener
? Я не спрашиваю с точки зрения программирования, но с точки зрения User Experience.
Какой из них лучше использовать?
Нужно ли реализовать оба?
Есть ли разница между OnTouchListener
и OnClickListener
? Я не спрашиваю с точки зрения программирования, но с точки зрения User Experience.
Какой из них лучше использовать?
Нужно ли реализовать оба?
который лучше использовать?
Это действительно зависит от вашего требования. onTouch дает вам Motion Event. Таким образом, вы можете делать много причудливых вещей, так как это помогает вам разделить состояние движения. Просто чтобы назвать несколько
Это обычные действия, которые мы обычно реализуем, чтобы получить результат желания, например, перетаскивание вида на экран.
С другой стороны, onClick не дает вам многого, кроме того, что пользовательский интерфейс просмотра взаимодействует. onClick - это полное событие, состоящее из фокусировки, нажатия и отпускания. Таким образом, у вас мало контроля над этим. Одна сторона - это очень просто реализовать.
нам нужно реализовать оба?
Это не обязательно, если вы не хотите испортить своего пользователя. Если вам просто нужно простое событие click, перейдите в onClick. Если вы хотите больше, чем просто щелкнуть, перейдите в onTouch. Выполнение обоих осложнит процесс.
С точки зрения пользователя, незаметно, если вы тщательно реализуете onTouch, чтобы выглядеть как onClick.
Событие "Touch" - это когда кто-то кладет палец на экран. Он вызывается во время движения пальца, вниз, перетаскивания и вверх. A "Click" может даже не появиться на экране. Может быть кто-то нажал клавишу ввода.
Используйте OnTouchListener
, когда вы хотите получать события от кого-то пальцем на экране.
Используйте OnClickListener
, если вы хотите обнаружить клики.
onClickListener
используется всякий раз, когда возникает событие клика для любого вида, например: click event для Button, ImageButton.
onTouchListener
используется всякий раз, когда вы хотите реализовать функциональность Touch типа, например, если вы хотите получить координаты экрана, на котором вы точно дотрагиваетесь.
из официального документа, определение для обоих:
onClickListner
: определение интерфейса для обратного вызова, вызываемого при нажатии на просмотр.onTouchListener
: определение интерфейса для обратного вызова, вызываемого при отправке события касания к этому представлению. Обратный вызов будет вызван до того, как событие касания будет передано в представление.Одна из веских причин использовать события ontouch над событиями onclick - получить более быстрый ответ при щелчке пользователя. Если событие onclick страдает от задержки в ответе и продолжении действия. события ontouch лучше для доставки высокопроизводительных мобильных веб-приложений.
Предпочитаете использовать onTouch. Приведите пример: когда у вас есть ViewPager и TextView. если вы реализуете setOnClickListener в textView, вы не сможете прокручивать ViewPager при касании/прокрутке на TextView
OnClickListener
- используется для основной цели, когда нам просто нужен клик от пользователя, то есть нажатие кнопки, отсутствие перетаскивания или жестов на экране
OnTouchListener
- это в основном более тонкий контроль, чем OnClickListener. Он выполняет и действует при нажатии/отпускании на экране. Он позволяет пользователю сочетать перемещение, опускание, касание, перетаскивание пальца или любой жест движения на экране.