首页 > 系统 > Android > 正文

android Touch传递过程的理解

2019-11-09 15:56:32
字体:
来源:转载
供稿:网友
TouchEvent事件的处理:在View树中,找到一个可以处理这个Touch事件的View,然后不断         把TouchEvent事件传递给这个View         1.查找的过程发生在ACTION_DOWN时                从View树的根View开始从上向下,传递TouchEvent事件,这个过程是在查看是否有                        ViewGroup拦截,如果有,TouchEvent事件不会再向下传递;                                                  如果没有, TouchEvent事件会传递到最底层的View/ViewGroup                 再从底向上,传递TouchEvent事件,这过程是在查看是否有View/ViewGroup可以处理                       TouchEvent事件,如果有,记录这个View/ViewGroup,和从根View到达这个View                                                                /ViewGroup的路径,且不会再向上传递这个TouchEvent                                                  如果没有,则View树不会再处理后续的TouchEvent事件        2.查找到后, 会根据记录下来的路径,把后续的TouchEvent事件不断通过记录的路径传递                  给View,这个过程依然可以拦截这个TouchEvent,但这个拦截不会妨碍后面的TouchEvent                 接着按照记录的路径传递给View         View.dispatchTouchEvent()负责调用onTouchEvent(),onTouchEvent()的返回值决定了View是否处理                 这个事件,true代表处理,false代表不处理         ViewGroup继承了View,重写了dispatchTouchEvent(),dispatchTouchEvent()负责向ViewGroup的子View                传递TouchEvent,也负责调用自身的onTouchEvent,判断它本身出否处理该TouchEvent;                也就是它负责向下传递TouchEvent事件          ViewGroup的onInterceptTouchEvent负责拦截TouchEvent,true代表拦截
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表