1. Basic knowledge
(1) All touch events are encapsulated as motionevent objects, including touch location, time, history, and the first few fingers (multi-fingered touch).
(2) The event types are divided into Action_down, action_up, Action_move, Action_pointer_down, Action_pointer_up, Action_cancel, and each event is Action_ Down begins action_up end.
(3) The handling of events consists of three classes, namely the transfer--dispatchtouchevent () function, The Intercept--onintercepttouchevent () function, the consumption--ontouchevent () function, and the Ontouchlistener
2. Delivery process
(1) The event is passed from Activity.dispatchtouchevent (), as long as it has not been stopped or intercepted, and is passed down (sub view) from the topmost view (ViewGroup). The child view can handle the event through Ontouchevent ().
(2) The event is passed by the parent view (ViewGroup) to the child View,viewgroup can intercept the event by Onintercepttouchevent () and stop it from passing down.
(3) If the event from the top down the process has not been stopped, and the bottom of the sub-view no consumption events, the event will be anti-yearning to pass, then the parent view (ViewGroup) can be consumed, if still not consumed, The Ontouchevent () function of the activity is finally reached.
(4) If the view does not consume the action_down, then other events will not be passed over.
(5) Ontouchlistener takes precedence over ontouchevent () to consume the event.
The above consumption means that the corresponding function return value is true.
read more directly in PDF: Mastering the Android Touch System, sample code:[email protected]. What's the problem can leave a message here.
Attach two flow charts in the original text
(1) View does not handle event flowchart
View-ignore-touch-event-example
(2) View processing event flowchart
View-process-touch-event-example
Android Touch Event Delivery mechanism