3,只要你从这个函数返回false,每个跟随事件(直到并包括最后一个)将首先在这里传递给目标的onTouchEvent()。
4,如果从此处返回true,则不会收到任何后续事件:目标视图将收到相同的事件但行动为ACTION_CANCEL,并且所有其他事件将被传递到您的onTouchEvent()方法,不再出现在这里。
但是当我使用这个方法时,无论onInterceptTouchEvent()返回什么,它都会做同样的工作!并且此方法从未捕获过MotionEvent.ACTION_MOVE或MotionEvent.ACTION_UP。任何人都可以帮我搞清楚吗?
部份!
答案 0 :(得分:4)
通常情况下,触摸从最上面的视图到最低的onInterceptTouchEvent
,然后通过onTouchEvent
返回。
如果你在onInterceptTouchEven
中返回true,你禁止它继续,你返回的视图是最后一个接受触摸的视图,你消耗它
您也可以禁止父视图使用该事件
requestDisallowInterceptTouchEvent(true);
答案 1 :(得分:0)
当你的视图的子节点都没有在onTouchEvent中返回true时,只能为MotionEvent.ACTION_DOWN调用onInterceptTouchEvent。
Here is a complete description of the MotionEvent processing