Flutter的crossAxisAlignment与mainAxisAlignment区别

83

我对crossAxisAlignmentmainAxisAlignment感到困惑。有人可以简单地解释一下吗?

7个回答

184

针对Row布局:

mainAxisAlignment = 水平轴
crossAxisAlignment = 垂直轴

在此输入图片描述


针对Column布局:

mainAxisAlignment = 垂直轴
crossAxisAlignment = 水平轴

在此输入图片描述

图片来源


16

6

Row/Column 与轴相关:

  • Row 水平方向
  • Column 垂直方向

mainAxisAlignment 是沿着该轴对齐项目的方式。 crossAxisAlignment 是沿着另一个轴对齐项目的方式。


5

4
当您使用Row时,它的子项会水平排列,因此Row的主轴是水平的。在Row中使用mainAxisAlignment可以让您水平对齐行的子项(例如左对齐、右对齐)。Row的交叉轴是垂直的。因此,在Row中使用crossAxisAlignment可以定义其子项在垂直方向上的对齐方式。
Column中,则与之相反。列的子项默认情况下是从上到下垂直排列的。因此,它的主轴是垂直的。这意味着,在Column中使用mainAxisAlignment会垂直对齐其子项(例如顶部、底部),而crossAxisAlignment则定义了该列中子项在水平方向上的对齐方式。

2
在一列中,要使内容垂直居中(或对齐),需要使用“mainAxisAlignment”。要使内容水平居中(或对齐),需要使用“crossAxisAlignment”。
在一行中,要使内容水平居中(或对齐),需要使用“mainAxisAlignment”。要使内容垂直居中(或对齐),需要使用“crossAxisAlignment”。

0

主轴对齐方式中,水平方向运行,而交叉轴对齐方式垂直方向运行。 在主轴对齐方式中,垂直方向运行,而交叉轴对齐方式水平方向运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接