关联项目: https://github.com/ixyxj/flutter_cookbook
控件Widget
Flutter UI的创建都是继承自Widget
1 | /// 一个元素配置的描述, 所有的控件都是继承自此类, 其中包括两个抽象类,分别是无状态和有状态 |
从上面可以看到关键的部分就是createElement(), 找到两个实现类,是三个^_^.
- StatelessWidget
1 | abstract class StatelessWidget extends Widget { |
创建无状态元素:
1 | /// An [Element] that uses a [StatelessWidget] as its configuration. |
- StatefulWidget
分析了无状态, 有状态的控件同理,但复杂一些
1 | /// An [Element] that uses a [StatefulWidget] as its configuration. |
- InheritedWidget, 此类继承与ProxyWidget, 而ProxyWidget继承与Widget并传入child
1 | abstract class ProxyWidget extends Widget { |
首先分析最简单的Text控件
日志
Trees of Flutter diagnostics:
1 | // 显示等级, 一般都在debug以上 |