I want to track a finger touch on the screen. So what I did was to start recording the position when MotionEvent
triggers ACTION_DOWN
, but how do I know when the action is finished, at ACTION_CANCEL
, or ACTION_UP
?
What's the exact difference between them?
ACTION_UP: A pressed gesture has finished, the motion contains the final release location as well as any intermediate points since the last down or move event.
ACTION_CANCEL: The current gesture has been aborted.
ACTION_CANCEL occurs when the parent takes possession of the motion, for example when the user has dragged enough across a list view that it will start scrolling instead of letting you press the buttons inside of it. You can find out more about it at the viewgroup documentation: onInterceptTouchEvent .
so use ACTION_CANCEL when the action is dragged out of the parent, and ACTION_UP otherwise.
In general ACTION_UP
is triggered by user when the guest is finished to definitely indicate that the user completed interacting with movement.
On the other hand ACTION_CANCEL
is called by system to show that a parent view takes over control of one of its children views.
Please take a look at a diagram
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.