Flutter点击事件

610 阅读1分钟
  1. 点击事件处理流程
  2. 分解内容讲解
  • App启动->启动FlutterActivity->使用FLutterView(SurfaceView)填充界面
  • 初始化Flutter底层容器(初始化window对象)->runApp将用户Widget和系统进行绑定
  • GestureBinding将window的回调绑定到WidgetsFlutterBinding/GestureBinding上处理点击事件
  • RendererBinding -> renderView
  • 事件传递过来以后,先进行从上到下的点击检测,将点击区域覆盖的界面全部加载到HitTestResult中
  • RenderObject实现了HitTestTarget可以在封装成BoxHitTestEntry后,添加到Result中
  • 只有按下的动作才会进行HitTest,在后面的操作中,点击事件的传递区域都不会改变.
  • 在抬起动作,HitTest结果会移除
  • 更新了HitTest后,全部的事件都会分发到Target中,让Target处理按下/移动/松开等一系列操作
  • 父子同时有点击事件,不会同时执行.优先执行子事件