android 事件分发机制

源码解析起来太麻烦,简要总结一下

实现分发的顺序Activity -> ViewGroup -> View。

android事件分发机制中有下面三个重要方法:

 

dispatchTouchEvent()  
onInterceptTouchEvent()
onTouchEvent()

 

总结:

整个事件分发过程可看成一段起点一定而终点未定的旅行。这段旅行从activity出发,终止于未知。

1.事件是从父布局向子布局传递,层层递进。

接收到事件先由dispatchTouchEvent()处理。在dispatchTouchEvent()中,当onInterceptTouchEvent()为true时,事件被拦截,调用onTouchEvent()方法;为false时调用子View的dispatchTouchEvent方法。

2.dispatchTouchEvent() 和 onTouchEvent() 返回false的时,父布局的onTouchEvent会被调用。

此时,可理解为事件从子布局向着父布局传递,层层递进。

3.dispatchTouchEvent() 和 onTouchEvent 返回 true,事件就停止传递。

 



posted @ 2016-06-22 21:26  maozs  阅读(158)  评论(0编辑  收藏  举报