美文网首页
2018-03-26

2018-03-26

作者: CVD | 来源:发表于2018-03-27 10:57 被阅读0次

    温习Android系统事件分发的机制

    自上而下分成Activity,ViewGroup,和View

    事件分发流程

    在Activity 中分发的时候,dispatchEvent()如果返回true,false,则直接被消费,不会传递,图中其他方法都不会被执行。

    在ViewGroup中分发的时候

    1.dispatchTouchEvent 和 onTouchEvent 一旦return true,事件就停止传递了

    2.dispatchTouchEvent 和 onTouchEvent return false的时候事件都回传给父控件的onTouchEvent处理。回溯到父View的onTouchEvent处理

    3.ViewGroup 想把自己分发给自己的onTouchEvent,需要拦截器onInterceptTouchEvent方法return true 把事件拦截下来。默认情况下是不拦截的

    4.View 没有拦截器,为了让View可以把事件分发给自己的onTouchEvent,View的dispatchTouchEvent默认实现(super)就是把事件分发给自己的onTouchEvent。

    相关文章

      网友评论

          本文标题:2018-03-26

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