
触摸事件分发
文章平均质量分 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 · 569 阅读 · 0 评论 -
触摸事件分发流程详解(二):事件发送和接受
InputDispatch中的发送部分(待补充) 继续接着上篇文章分析NativeInputEventReceiver中的 NativeInputEventReceiver中的handleEvent() 建立好channel之后,就是通信了。从InputDispatcher从InBoundQueue队列头中取出事件,然后通过将中将消息发出来了,ViewRootImpl通过就是NativeInputEventReceiver中的handleEvent()方法。 int NativeInputEventRece原创 2020-08-13 15:49:58 · 529 阅读 · 0 评论 -
触摸事件分发流程详解(三):触摸事件分发
Activity中的dispatchTouchEvent: 一、如果在自定义的Activity中复写dispatchTouchEvent方法,除非返回super.dispatchTouchEvent(),否则都将直接拦截view的事件分发。因为事件分发是在Activity的dispatchTouchEvent()方法中进行的,如下: dispatchTouchEvent public boolean dispatchTouchEvent(MotionEvent ev) { 1、接受到触摸事件的时候,调用这个原创 2020-08-13 18:01:16 · 766 阅读 · 0 评论