一.onTouch 和 onTouchEvent
都在dispatchTouchEvent中被调用
若onTouch返回true,则onTouchEvent不会被执行,事件被消费
若onTouch返回false,则onTouchEvent会被执行,onclick是在onTouchEvent的PerformClick中被调用的
内置诸如click事件的实现等等都基于onTouchEvent,假如onTouch返回true,这些事件将不会被触发。
二.touch事件的层级传递
我们都知道如果给一个控件注册了touch事件,每次点击它的时候都会触发一系列的ACTION_DOWN,ACTION_MOVE,ACTION_UP等事件。这里需要注意,如果你在执行ACTION_DOWN的时候返回了false,后面一系列其它的action就不会再得到执行了。简单的说,就是当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回true,才会触发后一个action。
重写时可以控制,源码中是肯定返回true的