美文网首页
android 的事件传递

android 的事件传递

作者: 爆发小宇 | 来源:发表于2017-06-07 17:03 被阅读18次

    android 的事件传递,一直是我比较头疼的问题,今天好好理一下
    先看图片


    未命名.png

    基本结构,可以看Activity 下面的那个图,Activity中ViewGroup包含有View。
    第一个先来看Activity:如果在Activity中返回的dispatchEvent(MotionEvent ev) 的方法中,返回true 和 false ,
    事件都是不会往下继续传递的了,也就是自己消费了该事件。
    如果返回super.dispatchEvent(MotionEvent ev),则会继续传递给ViewGroup,一般情况下,如果要自定义View包括ViewGroup,都不会在Activity层重写dispatchEvent(MotionEvent ev)方法,使用默认的即可

    第二是ViewGroup :当事件传递到ViewGroup时,会先走事件拦截方法也就是onInterceptTouch(MotionEvent ev),也是重写步骤中很关键的方法。如果返回true ,则自己消费了该事件,不会继续传递,则其他的子View 不会再接收到事件消息,如果返回false 或是默认的super.onInterceptTouch(MotionEvent ev)则是会继续传递给子view的。

    接下来就是View ,view 主要看的onTouchEvent(MotionEvent ev),如果返回true ,则会自己消费该事件,不会向上继续传递了

    相关文章

      网友评论

          本文标题:android 的事件传递

          本文链接:https://www.haomeiwen.com/subject/kzdaattx.html