Flutter笔记 - 事件分发
2023-09-14 08:59:00 时间
事件处理流程
Flutter 事件处理流程主要分两步,为了聚焦核心流程,我们以用户触摸事件为例来说明:
- 命中测试:当手指按下时,触发 PointerDownEvent 事件,按照深度优先遍历当前渲染(render object)树,对每一个渲染对象进行“命中测试”(hit test),如果命中测试通过,则该渲染对象会被添加到一个 HitTestResult 列表当中。
- 事件分发:命中测试完毕后,会遍历 HitTestResult 列表,调用每一个渲染对象的事件处理方法(handleEvent)来处理 PointerDownEvent 事件,该过程称为“事件分发”(event dispatch)。随后当手指移动时,便会分发 PointerMoveEvent 事件。
- 事件清理:当手指抬( PointerUpEvent )起或事件取消时(PointerCancelEvent),会先对相应的事件进行分发,分发完毕后会清空 HitTestResult 列表。
相关文章
- 如何实现Windows Phone代码与Unity相互通信(事件方式)
- WIN锁屏+鼠标移动事件
- jQuery 2.0.3 源码分析 事件体系结构
- Javascript事件机制兼容性解决方案
- Flutter Android Toast Message(flutter访问Android Toast Message)
- button submit你以为你阻止了默认事件?
- 【Swift 2.1】为 UIView 添加点击事件和点击效果
- vue.js3:用mitt发送接收事件消息(vue@3.2.6 / mitt@3.0.0)
- [Flutter] 因为不讲这个重点, 全网 flutter 实战视频沦为二流课程
- [Flutter] lib/main.dart:1: Warning: Interpreting this as package URI, 'package:flutter_app/main.dart'.
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)
- Flutter之 flutter_after_layout组件的作用:监听页面渲染的第一帧
- Asp.net中DropDownlist中无法触发后台事件解决方案
- quick-cocos2d-x游戏开发【10】——触摸捕获事件 cc.NODE_TOUCH_CAPTURE_EVENT
- python web py入门(44)- jQuery 事件 - 函数表达式
- 【2021 第五届“达观杯” 基于大规模预训练模型的风险事件标签识别】1 初赛Rank12的总结与分析