Flutter 中主要有以下几种布局类的 Widget:
- 线性布局 Row 和 Column
- 弹性布局 Flex
- 流式布局 Wrap、Flow
- 层叠布局 Stack、Positioned
单 child 布局控件
- Center: 将子控件放置在自己内部中心。
- Align: 通过自己对齐子控件,并且可能会根据子控件的大小来控制自己尺寸的小控件
- FittedBox: 通过缩放和定位子控件来进行合适的调整
- AspectRatio: 一个根据特定的长宽比来布局子控件的特殊控件
- LimitedBox: 只有当它不受约束时才会限制它的大小
- Offstage: 一个可以控制其子控件显示或者隐藏的小控件
- OverflowBox: 一个可以让子控件溢出其父控件的控件
- SizedOverflowBox: 一个具有特殊尺寸并且可能会溢出的小控件
- Transform: 一个在子控件绘制之前进行转换的控件
多 child 布局组件
- Row: 在水平方向上布局子部件的列表。
- Column: 在垂直方向上布局子窗口小部件的列表
- Stack: 相对定位,重叠子控件,IndexedStack 显式指定位置的子控件的控件
- GridView: 可滚动的 2D 子控件数组
- Flow/Wrap: 一个实现流布局算法的布局
- ListView: 可滚动的线性小部件列表
- SliverList: 可滚动的线性小部件列表, 用于 ListView 的子控件
另外还有一个 LayoutBuilder 构建一个可以依赖父控件大小的控件树