Android onInterceptTouchEvent 和 onTouchEvent
o nInterceptTouchEvent 方法是ViewGroup的方法,也就是所有的容器都将继承该方法。此方法设计的意图是为了在父容器将touch事件传递给子控件的时候可以统一控制。比如button就没有该方法,很明显,button不可能拥有子控件。 onTouchEvent 方法是 view 的方法,当该控件接收到 touch 事件时,此方法会被执行。每一个 touch 事件总是从 ACTION_DOWN 事件开始, ACTION_UP 结束。 Touchevent 中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去 Touch 事件几大原则: 1. 如果在某个层级没有处理 ACTION_DOWN 事件,那么该层就再也收不到后续的 Touch 事件了直到下一次 ACTION_DOWN 事件。 说明: a. 某个层级没有处理某个事件指的是它以及它的子 View 都没有处理该事件。 b. 这条规则不适用于 Activity 层(它是顶层),它们可以收到每一个 Touch 事件。 c. 如果没有处理 ACTION_MOVE 这类事件,不会有任何影响。 2. 如果 ACTION_DOWN 事件发生在某个 View 的范围之内,则后续的 ACTION_MOVE , ACTION_UP 和 ACTION_CANCEL