Какая разница между ACTION_CANCEL и ACTION_UP в MotionEvent?
Я хочу отслеживать касание пальцем на экране. Так что я сделал, чтобы начать запись позиции, когда MotionEvent вызывает ACTION_DOWN, но как узнать, когда действие закончено, в ACTION_CANCEL или ACTION_UP?
ACTION_UP: прерванный жест завершен, движение содержит окончательное местоположение релиза, а также любые промежуточные точки со времени последнего события или перемещения.
ACTION_CANCEL: текущий жест прерван.
ACTION_CANCEL возникает, когда родитель получает доступ к движению, например, когда пользователь перетащил достаточно в виде списка, чтобы начать прокрутку, вместо того, чтобы позволить вам нажимать кнопки внутри него. Подробнее об этом вы можете узнать в документации группы просмотра: onInterceptTouchEvent.
поэтому используйте ACTION_CANCEL, когда действие перетаскивается из родителя, а ACTION_UP в противном случае.
Ответ 2
В общем, ACTION_UP запускается пользователем, когда гость заканчивает, чтобы точно указать, что пользователь завершил взаимодействие с движением.
С другой стороны, ACTION_CANCEL вызывается системой, чтобы показать, что родительское представление берет на себя управление одним из своих дочерних представлений.