Given that there is a ViewGroup with several children. As for this ViewGroup, I\'d like to have it managing all MotionEvent for its all children, which says VG will
1. b
There is no easy way to find the source View
from onInterceptTouchEvent
, nor there is a way to "dispatch" these events. You can dispatch KeyEvent
s, but not MotionEvent
s.
A common way to deal with MotionEvent
s (e.g., for drag and drop) is to handle the MotionEvent.ACTION_DOWN
events by the different View
s (through the onTouch
callback after implementing OnTouchListener
), and the MotionEvent.ACTION_MOVE
events through the parent Viewgroup
's onInterceptTouchEvent
method.
But some LOCs say a lot more than a bunch of words. There's a very nice example of what I'm saying here: http://doandroids.com/blogs/tag/codeexample/
If you handle the ACTION_DOWN event in the View itself, then you can store which View started it elsewhere and use that variable for further actions. The Event is bound to the same View until is finished by an ACTION_UP or an ACTION_CANCEL actions.
If you need to keep track the View and execute an action on the ViewGroup during the ACTION_DOWN, then I suggest you to add a public method in your ViewGroup (e.g. public boolean handleActionDown (View v, MotionEvent e)
that will be called from the onTouch callback