1分钟
02 hitTest
hitTest
方法主要为了得到一个 HitTestResult
,这个 HitTestResult
内有一个 List
是用于分发和竞争事件的,而每个 HitTestEntry.target
都会存储每个控件的 RenderObject
。
因为 RenderObject
默认都实现了 HitTestTarget
接口,所以可以理解为: HitTestTarget
大部分时候都是 RenderObject
,而 HitTestResult
就是一个带着碰撞测试后的控件列表。
事实上 hitTest
是 HitTestable
抽象类的方法,而 Flutter 中所有实现 HitTestable
的类有 GestureBinding
和 RendererBinding
,它们都是 mixins
在 WidgetsFlutterBinding
这个入口类上,并且因为它们的 mixins
顺序的关系,所以 RendererBinding
的 hitTest
会先被调用,之后才调用 GestureBinding
的 hitTest
。
那么这两个 hitTest 又分别干了什么事呢?
学员评价