android事件分发

 

 一.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的

 

posted @ 2015-08-12 17:01  一路向前_Future  阅读(109)  评论(0)    收藏  举报