I have a custom ViewGroup with an override of onInterceptTouchEvent(). It receives ACTION_DOWN but never receives ACTION_MOVE. It is my understanding that, unless it returns \
It's a bit more complicated than that. First of all you need to override onTouchEvent()
and handle ACTION_DOWN
and MOVE
events there too. Then the following will happen.
ACTION_DOWN
event gets dispatched to onInterceptTouchEvent()
first. You should return false
from there.ACTION_DONW
event's location in the view tree, then ACTION_DOWN
event and all follow up events get dispatched to onTouchEvent()
. You must return true
from there. Only then you will receive follow up events sent to onTouchEvent()
method. Independently on whether you return true
or false
, onInterceptTouchEvent()
will not receive any follow up events anymore.onInterceptTouchEvent()
(including ACTION_MOVE
events). You need to return true
from there, after you detected your gesture. Once you return true
from here, touchable view will receive ACTION_CANCEL
event and all further events will be dispatched to onTouchEvent()
method.Hope this helps.