zoukankan      html  css  js  c++  java
  • 剖析touch事件在View中的传递

    话不多说,直奔主题,先来看一张图

    版权申明:这是csdn上别人的图,我觉得有用,就拿过来了,

    然后简单说明下:

    总的来说,触摸事件是从最外层的ViewGroup,一级一级传递进来的

    和这相关的每个View的回调方法有三个,dispatchTouchEvent,onInterceptTouchEvent,以及大家都熟悉的ouTouchEvent

    事件传递到一个View(ViewGroup),先回调到dispatchTouchEvent()方法,这里如果不super的话,就直接只执行当前代码了,super的话,到onInterceptTouchEvent()方法,这里比较关键,返回false的话,说明不拦截,继续往下传,true的话,说明拦截,直接截断了传递链,然后转到本View的ouTouchEvent方法,整个就结束了。

    继续传递的话,如果都没有拦截,就从子View的onTouchEvent方法一直传上来,传到顶层的View,假如传递链中间一个View的onTouchEvent返回true的话,

    说明这个View已经处理事件了,就到此为止了,不往上传递了。

    好了,View传递机制的解说就到此为止,欢迎大家关注我的另外几篇博客,接下来一篇准备讲解Actionbar,明天再写吧

    PS:

    欢迎大家关注我的微信公众号"大土豆爱开发",技术包括但不限于JavaEE,Android,Git等。

  • 相关阅读:
    linux内存不足时,为了防止报错,可以使用swap
    Linux SWAP 深度解读
    tomcat启用apr需要的三个组件(缺少可能会报错)
    阿里云无法ping通解决
    linux安装jdk环境
    linux下如何彻底删除mysql
    如何让百度收录自己的网站
    [SWF]在线预览文档下载
    [C#]线程处理
    [C#]关键字
  • 原文地址:https://www.cnblogs.com/mark888/p/4822628.html
Copyright © 2011-2022 走看看