13.手势传递

图解 Android 事件分发机制

结论

  1. dispatchTouchEvent,onTouchEvent,
    return true是终结事件传递;
    return false 是回溯到父View的onTouchEvent方法。
  2. ACTION_MOVE、ACTION_UP总结:
    **ACTION_DOWN事件在哪个控件消费了(return true), 那么ACTION_MOVE和ACTION_UP就会从上往下(通过dispatchTouchEvent)做事件分发往下传,就只会传到这个控件,不会继续往下传,如果ACTION_DOWN事件是在dispatchTouchEvent消费,那么事件到此为止停止传递,如果ACTION_DOWN事件是在onTouchEvent消费的,那么会把ACTION_MOVE或ACTION_UP事件传给该控件的onTouchEvent处理并结束传递。

onInterceptTouchEvent()的作用以及何时会被调用
为什么onInterceptTouchEvent()方法只接收到来ACTION_DOWN事件?需要处理ACTION_MOVE,ACTION_UP等等事件吗?
当我们在onInterceptTouchEvent()方法中返回false,子View的onTouchEvent返回true的情况下,onInterceptTouchEvent方法才会收到后续的事件。
ViewGroup的onInterceptTouchEvent方法,onTouchEvent方法以及View的onTouchEvent方法之间的事件传递流程
onTouchEvent收到ACTION_DOWN,是否一定能收到ACTION_MOVE,ACTION_UP...? 收到了ACTION_MOVE,能否说明它已经收到过ACTION_DOWN?
让ViewGroup支持click事件

你可能感兴趣的:(13.手势传递)