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