В чем разница между ACTION_CANCEL и ACTION_UP в MotionEvent?

Я хочу отслеживать прикосновение пальца к экрану. Итак, что я сделал, так это начал запись позиции, когда MotionEvent запускает ACTION_DOWN, но как я узнаю, когда действие завершено, в ACTION_CANCEL или ACTION_UP?

Какая точная разница между ними?


person James    schedule 09.03.2011    source источник


Ответы (2)


MotionEvent:

  • ACTION_UP: жест нажатия завершен, движение содержит конечное положение отпускания, а также любые промежуточные точки с момента последнего нажатия или перемещения.

  • ACTION_CANCEL: текущий жест был прерван.

ACTION_CANCEL происходит, когда родительский элемент завладевает движением, например, когда пользователь провел достаточное количество движений по списку, чтобы он начал прокручиваться вместо того, чтобы позволять вам нажимать кнопки внутри него. Вы можете узнать больше об этом в документации группы просмотра: onInterceptTouchEvent< /а>.

поэтому используйте ACTION_CANCEL, когда действие перетаскивается из родителя, и ACTION_UP в противном случае.

person Ian    schedule 09.03.2011

Обычно ACTION_UP запускается пользователем, когда гость заканчивает работу, чтобы определенно указать, что пользователь завершил взаимодействие с движением.

С другой стороны, ACTION_CANCEL вызывается системой Android, чтобы указать, что одно из представлений взяло на себя управление с помощью onInterceptTouchEvent(), которое вернуло true, поскольку в результате система завершила распространение события касания.

Пожалуйста, взгляните на диаграмму.

person yoAlex5    schedule 26.07.2019