Flutter 开发实战

235课时
1K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

02 hitTest

hitTest 方法主要为了得到一个 HitTestResult ,这个 HitTestResult 内有一个 List 是用于分发和竞争事件的,而每个 HitTestEntry.target 都会存储每个控件的 RenderObject

因为 RenderObject 默认都实现了 HitTestTarget 接口,所以可以理解为: HitTestTarget 大部分时候都是 RenderObject ,而 HitTestResult 就是一个带着碰撞测试后的控件列表。

事实上 hitTestHitTestable 抽象类的方法,而 Flutter 中所有实现 HitTestable 的类有 GestureBindingRendererBinding ,它们都是 mixinsWidgetsFlutterBinding 这个入口类上,并且因为它们的 mixins 顺序的关系,所以 RendererBindinghitTest 会先被调用,之后才调用 GestureBindinghitTest

那么这两个 hitTest 又分别干了什么事呢?