码迷,mamicode.com
首页 > 其他好文 > 详细

Touch事件机制

时间:2016-03-16 16:58:14      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

       Touch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。

       View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。

       View的相关事件只有两个:dispatchTouchEvent、onTouchEvent。ViewGroup的相关的事件在View的基础上则多一个事件onInterceptTouchEvent,只要是对ViewGroup可响应的事件进行拦截处理。

 

 

整个ViewGroup处理流程,可以看做是Touch事件在以ViewGroup为中间节点、View为根节点的树状结构中寻找响应。

       1、当根节点接收到Touch事件时,就会调用自身的dispatchTouchEvent方法,向他的子节点分发Touch事件,如果其子节点为ViewGroup,那么就继续下发;

       2、当Touch事件到达View时,V通过dispatchTouchEvent调用自身的onTouchEvent方法,如能响应则返回true,否则返回false;

       3、当ViewGroup的子节点全部返回false的时候,ViewGroup便调用自身的onTouchEvent方法来尝试响应处理,如果成功则返回true,否则返回false,继续向上反馈;

       4、直至找到Touch事件对应的响应处理节点,在分发的过程中,如果中间节点onInterceptTouchEvent()方法返回true,则不向下分发,直接调用本节点的onTouchEvent方法响应

Touch事件机制

标签:

原文地址:http://www.cnblogs.com/nathan909/p/5284029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!