安卓事件机制

安卓事件机制

ViewGroup的三个函数:

dispatchTouchEvent

onInterceptTouchEvent

onTouchEvent

View的两个函数:

dispatchTouchEvent

onTouchEvent

 

事件传递:

如果一个事件传给了一个 View/ViewGroup 则会调用他的

dispatchTouchEvent

 

如果 此时dispatchTouchEvent 返回false

表明 这个View/ViewGroup 不想处理这个事件 这个事件跟它以及它的children没有关系

然后事件就找 下一个View/ViewGroup 重复上述过程

 

如果 此时dispatchTouchEvent 返回true

表明 这个View/ViewGroup 想处理这个事件

那么 这个View/ViewGroup的以下函数会被调用:

onInterceptTouchEvent (只有ViewGroup会调用 因为View没有children)

onTouchEvent

 

如果 onInterceptTouchEvent 返回了false 则事件还会往ViewGroupchildren传递

调用childrendispatchTouchEvent这里就不重复说了 就是上面提到过的过程

 

如果 onInterceptTouchEvent 返回了ture 则不会往ViewGroupchildren传递

 

 

当我们重写一个类的dispatchTouchEvent

要记得调用super.dispatchTouchEvent(ev)

posted on 2015-04-08 00:26  绿袍老祖~  阅读(130)  评论(0)    收藏  举报

导航