Row和Column分别在横向和纵向对子Widget进行布局。
- 对于Row来讲,横向是主轴,纵向是交叉轴。
- 对于Column来讲,横向是交叉轴,纵向是主轴。
针对主轴和交叉轴,不同大小的子Widget该如何对齐呢?Flutter提供了下列属性:
MainAxisAlignment:主轴对齐方式
| 属性值 | 解释 | 图示 |
|---|---|---|
| start | 靠近主轴的开始 | ![]() |
| end | 靠近主轴的末尾 | ![]() |
| center | 靠近主轴中间 | ![]() |
| spaceBetween | 剩余空间在孩子中间平分 | ![]() |
| spaceAround | 剩余空间围绕孩子平分 | ![]() |
| spaceEvenly | 剩余空间在孩子之间均等分配 | ![]() |
CrossAxisAlignment:交叉轴对齐方式
| 属性值 | 解释 | 图示 |
|---|---|---|
| start | 左对齐(Column)或上对齐(Row) | ![]() |
| end | 右对齐(Column)或下对齐(Row) | ![]() |
| center | 中间对齐 | ![]() |
| stretch | 拉伸 | ![]() |
| baseline | 基线对齐,需要配合textBaseline属性使用 | ![]() |










