# Flutter布局组件

## 布局组件

### 线性布局

* **Align**：指定组件位于父组件的位置，左上、右下等方位。
* **Column**：列布局，可以指定主轴和交叉轴的排列方式。
* **Row**：行布局，可以指定主轴和交叉轴的排列方式。

### 流式布局

* **Wrap**：从左到右、从上到下，溢出自动换行。
* \*\*Flow：\*\*类似Wrap，但是提供更灵活的布局方法。

### 列表布局

* \*\*GridView：\*\*网格布局
* \*\*ListView：\*\*线性列表布局

### 滚动布局

* \*\*SliverList：\*\*滚动列表布局。
* **SliverGrid**：滚动网格布局
* **CustomScrollView**：用于创建自定义滚动效果的滚动视图，内部包裹Sliver类型组件，外面通常被Expanded、SizedBox等组件包裹，以便避免超出界限。
* **SliverToBoxAdapter**：一种特殊组件，通常用于将基于盒结构的组件（例如Container）“转变”为Sliver组件，以便被**CustomScrollView**这类组件使用，

### 重叠布局

* **Stack**：允许子孙组件重叠。
* **Positioned**：给定具体的坐标进行定位，类似于css的绝对定位

### 容器布局

* **Container**：盒子容器，可以指定宽高，内外边距和边框。
* **SizeBox**：给定宽高，强制将子组件宽高改为设定值，除非父组件不支持该宽高。
* **Padding**：设定内边距，padding必填。
* **Center**：将子元素居中。
* **LimitedBox**：限制子元素的最大宽高。
* **ConstrainedBox**：类似于LimitedBox，但是还可以限制子元素的最小宽高。
* **OverflowBox**：用于子组件溢出父组件。

### 弹性布局

* **Expanded**：用于扩展Column、Row或者Flex的子项。
* **Flex**：用于控制子组件在父组件中的布局方式和占用空间的比例。
