| 首页 | 归档 | 分类 | 标签 | 关于 |
State表示对应的StatefulElement需要保存的信息。

它表示与该State实例关联的widget实例,由Flutter framework动态设置。注意,这种关联并非永久的,因为在应用生命周期中,UI树上的某一个节点的widget实例在重新构建时可能会变化,但State实例只会在第一次插入到树中时被创建,当在重新构建时,如果widget被修改了,Flutter framework会动态设置State.widget为新的widget实例。
StatefulWidget对应的BuildContext,作用同StatelessWidget的BuildContext,表示当前widget在widget树中的上下文,每一个widget都会对应一个context对象(因为每一个widget都是widget树上的一个节点)。
当Widget第一次插入到Widget树时会被调用,对于每一个State对象,Flutter framework只会调用一次该回调,所以,通常在该回调中做一些一次性的操作,
如状态初始化、订阅子树的事件通知等。不能在该回调中调用BuildContext.dependOnInheritedWidgetOfExactType
(该方法用于在Widget树上获取离当前widget最近的一个父级InheritFromWidget,关于InheritedWidget我们将在后面章节介绍),原因是在初始化完成后,
Widget树中的InheritFromWidget也可能会发生变化,所以正确的做法应该在build()方法或didChangeDependencies()中调用它。
1 |
|
TextPainter封装了Paragraph,用于绘制文本。
1 | class TextPainter { |
CustomMultiChildLayout从字面意思就说的很清楚了,自定义多个孩子的布局控件
1 |
|