首页 > 其他分享 >Flutter笔记 - 事件分发

Flutter笔记 - 事件分发

时间:2023-02-18 14:22:38浏览次数:29  
标签:事件处理 分发 渲染 笔记 Flutter 事件 HitTestResult

事件处理流程

Flutter 事件处理流程主要分两步,为了聚焦核心流程,我们以用户触摸事件为例来说明:

  1. 命中测试:当手指按下时,触发 PointerDownEvent 事件,按照深度优先遍历当前渲染(render object)树,对每一个渲染对象进行“命中测试”(hit test),如果命中测试通过,则该渲染对象会被添加到一个 HitTestResult 列表当中。
  2. 事件分发:命中测试完毕后,会遍历 HitTestResult 列表,调用每一个渲染对象的事件处理方法(handleEvent)来处理 PointerDownEvent 事件,该过程称为“事件分发”(event dispatch)。随后当手指移动时,便会分发 PointerMoveEvent 事件。
  3. 事件清理:当手指抬( PointerUpEvent )起或事件取消时(PointerCancelEvent),会先对相应的事件进行分发,分发完毕后会清空 HitTestResult 列表。

标签:事件处理,分发,渲染,笔记,Flutter,事件,HitTestResult
From: https://www.cnblogs.com/androidsuperman/p/17132502.html

相关文章

  • 【学习笔记】Spring声明式事务
    Spring声明式事务事务的概念事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。例如:在关系数......
  • 阅读笔记——架构漫谈
    这学期学习了软件体系结构这门课,想要做出好的软件,就需要在制作过程中对整个软件系统进行设计,引入软件架构的概念,为此阅读了王概凯的架构漫谈,得出了以下体会。上个......
  • 官方文档阅读笔记(二)2.安装 Djnago
    前提条件安装Python而且Python自带轻量级数据库SQLite。设置数据库也可以不设置默认使用SQLitePostgreSQL。你也可以使用MariaDB、MySQL或者Oracle......
  • 【学习笔记】Spring整合Mybatis
    Spring整合Mybatis回顾Mybatis首先需要导入mybatis和mysql的依赖需要一个配置文件,mybatis-config.xml在这个配置文件中,需要配置连接数据库的环境通过SqlSession......
  • MobaXterm相关使用笔记
    调节界面字体大小1.菜单栏字体大小设置2.terminal字体大小(1)CTRL+鼠标滚动——暂时(2)永久设置......
  • Android笔记--动态申请权限
    动态申请权限在动态申请权限这里,一共分为两种不同的模式,分别是Lazy模式(懒汉式)和Hungry模式(饿汉式),这两种模式区分的话,可以通俗地解释一下就是,对于懒汉来说,只有在我们点击某......
  • python学习笔记七:DataFrame
    1.Series是ndarray的升级,而DataFrame是Series的升级,从一维拓展到多维DataFrame的属性:index,colums,values,shapeimportnumpyasnpimportpandasaspdfrompandasimport......
  • python学习笔记六:Series
    Series是一种类似于一维数组的对象,由以下两部分组成:values:一组数据(ndarray或list类型)index:相关的数据索引标签一维数组默认索引为0,1,2,3...,而Series的索引可以自己给定......
  • python学习笔记五:numpy
    ndarray是一个多维数组的数据结构1.彩色图像是一个三维数组,通过matplotlib显示图像#显示图像importnumpyasnpimportmatplotlib.pyplotaspltfish=plt.imread('HappyF......
  • opencv学习笔记七十一:图像修复
    当我们的照片有划痕或遭到人为的涂鸦(比如马赛克)时,如果我们想让这些遭到破坏的图片尽可能恢复到原样,Opencv能帮我们做到吗?答案是肯定的。那么图像修复技术的原理是什么呢?简......