一、 官方定义:
是绑定widget 框架和Flutter 引擎的桥梁
class WidgetsFlutterBinding extends BindingBase with GestureBinding, SchedulerBinding, ServicesBinding, PaintingBinding, SemanticsBinding, RendererBinding, WidgetsBinding {
static WidgetsBinding ensureInitialized() {
if (WidgetsBinding._instance == null)
WidgetsFlutterBinding();
return WidgetsBinding.instance;
}
}
继承了 ,同时有很多 扩展,这些都是Flutter的重要组成部分
- 手势系统的 ,响应系统手势事件;
- 我们常说的帧,提供帧开始( ),绘制( )的时候回调,监听刷新事件;
- 监听平台消息,并发送到 ,简单说就是主要处理原生和Flutter 的通信
- 绑定绘制库,用于处理图片缓存
- 语义层和flutter引擎的桥梁
- 处理渲染树
- 处理组件树,渲染层和flutter 引擎的桥梁
初始化一个全局的单例,然后 创建了一个根Widget,为渲染树创建了一个根元素,随后调用了中的进行绘制,至此一个app启动成功。
二、 什么时候用,怎么用:
应该什么时候用,怎么用呢?我抄的文章的作者在使用flutter开发的时候,很长时间并没有用到,我也没有用到过,可能对大多数初学者也是如此。了解它的概念,只是便于我们理解flutter的实现原理。
如果你的软件有一些特殊需求需要深度定制化系统,那么此时就起到了大作用。比如以下场景:
- 自定义,你需要全局定义手势响应
- 自定义,这个应该是使用最多的地方,你可以在系统和flutter通信前进行自定义拦截和实现自动方法(我抄的作者在自定义键盘的时候使用了这种方式)
其他更多场景需要各位大佬给出,本篇文章在日后会进行扩展补充,目前所学有限
作为一个flutter新手,记录所学,及时巩固,各位大佬不喜勿喷。