
public boolean dispatchTouchEvent(MotionEvent ev); //分发事件
public boolean onInterceptTouchEvent(MotionEvent ev); //拦截事件
public boolean onTouchEvent(MotionEvent ev); //处理事件
接收事件后,进行分发:
dispatchTouchEvent返回true,事件消亡未处理。dispatchTouchEvent返回false,处理或传递该事件:onInterceptTouchEvent返回true,拦截事件,给自己的onTouchEvent进行处理;onInterceptTouchEvent返回false,把事件传递给子View进行处理。onInterceptEvent拦截事件,接收到事件后进行分发:dispatchTouchEvent返回false,事件未处理,注意这里的最小子view返回false代表未分发事件;dispatchTouchEvent返回true:onTouchEvent返回true把该事件消费掉;onTouchEvent返回false,等待上级处理。viewGroup中包含的最小子view是不含拦截onInterceptTouchEvent事件的,最小的子view比如Button,TextView...因为他们已在树的最底层,已无法向下传递了。
原文:https://www.cnblogs.com/wuyanzu/p/11874291.html