单子 Widget 布局和多子 Widget 布局

布局 Widget 按照可以包含的子 Widget 的数量分为:

单子 Widget 布局:就是布局 Widget 只能含有一个子 Widget 的
例如前面例子里出现的:

  1. Center(
  2. child: Text(content),
  3. )

Center 就是单子 Widget 的布局,它的子 Widget 属性是 child,而且只能有一个。
多子 Widget 布局:就是布局 Widget 可以含有多个子 Widget 的

  1. Column(
  2. children: <Widget>[
  3. Text(content),
  4. Text(content),
  5. ...
  6. ]
  7. )

Column 就是多子 Widget 的布局,它的子 Widget 属性是 children,可以有多个,是 Widget 数组。

可以明显的看到,区分单子 Widget 布局 还是多子 Widget 布局,就看是 child 还是 childrenchild 就是单子Widget,只能包含一个 Widget;children 就是多子 Widget,包含的是 Widget 数组。

布局方式

布局 Widget 还可以按照为子元素排布的方式分为:

  • 弹性布局 Widget
  • 线性布局 Widget
  • 流式布局 Widget
  • 层叠布局 Widget

因为在使用中,我们都是按照子元素排布的方式来使用的,所以接下来就主要讲一下这几种排布方式。

参考

【1】Flutter 实战
【2】Flutter 中文文档
【3】Flutter 完全手册