美文网首页
Touch 事件原理分析 (三)

Touch 事件原理分析 (三)

作者: 莫库施勒 | 来源:发表于2019-02-19 11:54 被阅读0次
Android视图结构 Touch事件初识调用顺序

我们已经知道了Touch 事件的底层原理,同时我们也知道了Window的创建过程,在widow创建的过程中,每个Window 都有一个 ViewRootImpl 在 WindowManagerGlobal 的  addView 中创建, 并调用 setView ,来完成 window 的添加。在添加之前会调用requestLayout完成初始化绘制,添加之后也可以调用requestLayout 发起重绘请求。这里就需要区分一下 invalidate 和 requestLayout 的区别。

我们重新回到事件分发上来,上节说到,native层会通过 InputChannel 通过 socket 通信,将 Touch 事件发送到应用层,在 ViewRootImpl 的  setView  方法中,requestLayout 之后就会创建一个 inputChannel,在调用的  mWindowSession.addToDisplay  中,inputChannel 就是其中的一个参数。同时也是 WindowInputEventReceiver 的构造参数。 WindowInputEventReceiver 时 ViewRootImpl 的内部类,继承了 InputEventReceiver, 并重写了 onInputEvent 方法,

@Override

public void onInputEvent(InputEvent event, int displayId) {

enqueueInputEvent(event, this, 0, true);

}

在这里,将Touch事件交给了 应用层,结合Android 结构视图就可以分析出事件的分发顺序

相关文章

  • Touch 事件原理分析 (三)

    我们已经知道了Touch 事件的底层原理,同时我们也知道了Window的创建过程,在widow创建的过程中,每个W...

  • Touch 事件原理分析 (一)

    文章内容主要从 https://segmentfault.com/a/1190000011826846 而来 1,...

  • Touch 事件原理分析 (二)

    既然事件最终是通过 InputChannel 发送出去,那么我们继续追踪 InputChannel。在 Input...

  • Touch 事件原理分析 (四)

    在三 中我们知道了Touch Event 是怎么从native层传导到framework 层并最终分发到ViewG...

  • 事件

    事件包括有三类:Touch Motion Remote 本篇主要介绍touch事件 Touch事件 事件产生->事...

  • iOS 事件机制

    事件 iOS 将事件分为三类: Touch Motion Remote像耳机线控…… Touch 事件 Touch...

  • Android事件分发与消费机制

    一、Touch 事件分析: 事件分发:dispatchTouchEvent return true:事件会分发给当...

  • AndroidTouch事件

    记录一下Touch事件的分析- - 什么是事件:当用户触摸屏幕时,将产生的触摸行为(Touch事件) 事件的类型:...

  • Android控件拖动以及控件的onTouch事件与onClic

    一: 原理就是响应控件的Touch事件,在Touch事件中对移动进行处理,如果没效果那你试着在布局文件中设置控件的...

  • Android事件分发

    1.前言 Android touch事件分发有几个方向可以深入分析 touch事件是如何从驱动层传递给Framew...

网友评论

      本文标题:Touch 事件原理分析 (三)

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