![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
触摸事件分发
文章平均质量分 86
蒋八九
read the fucking source code
展开
-
触摸事件分发流程详解(一):建立InputChannel
这里分析从ViewRootImpl开始:ViewRootImpl的setView:触摸事件java端的入口可以从ViewRootImpl的setView讲起,什么时候调用的setView可以查看window的界面显示机制。对于输入事件分发机制来说,这个setView主要做了四件事:在这里创建了客户端的InputChannel对象。通过binder机制,调用WindowSession的addToDisplay方法,并将InputChannel传入进去。创建WindowInputEventReve原创 2020-08-13 14:55:33 · 498 阅读 · 0 评论 -
触摸事件分发流程详解(二):事件发送和接受
InputDispatch中的发送部分(待补充)继续接着上篇文章分析NativeInputEventReceiver中的NativeInputEventReceiver中的handleEvent()建立好channel之后,就是通信了。从InputDispatcher从InBoundQueue队列头中取出事件,然后通过将中将消息发出来了,ViewRootImpl通过就是NativeInputEventReceiver中的handleEvent()方法。int NativeInputEventRece原创 2020-08-13 15:49:58 · 449 阅读 · 0 评论 -
触摸事件分发流程详解(三):触摸事件分发
Activity中的dispatchTouchEvent:一、如果在自定义的Activity中复写dispatchTouchEvent方法,除非返回super.dispatchTouchEvent(),否则都将直接拦截view的事件分发。因为事件分发是在Activity的dispatchTouchEvent()方法中进行的,如下:dispatchTouchEventpublic boolean dispatchTouchEvent(MotionEvent ev) {1、接受到触摸事件的时候,调用这个原创 2020-08-13 18:01:16 · 705 阅读 · 0 评论