颤振交叉轴线对准与主轴线对准

我对 crossAxisAlignmentmainAxisAlignment感到困惑。有人能用简单的语言解释一下吗?

52607 次浏览

Row/Column与一个轴相关联:

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

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

当您使用 Row时,它的子元素以水平方向排列。所以 Row的主轴是水平的。 在 Row中使用 mainAxisAlignment可以使行的子级水平对齐(例如,左、右)。 与 Row主轴的交叉轴是垂直的。因此在 Row中使用 crossAxisAlignment可以定义它的子元素如何垂直对齐。

Column里,情况恰恰相反。列的子级垂直布局,从上到下(每个默认值)。所以它的主轴是垂直的。这意味着,在 Column中使用 mainAxisAlignment使其子元素垂直对齐(例如,顶部,底部) ,而 crossAxisAlignment定义了子元素在该列中的水平对齐方式。

第一排:

水平轴
垂直轴

enter image description here


专栏:

垂直轴
水平轴

enter image description here

图像来源

这两张图片清楚地显示了 MainAxisAl缘和 CrossAxisAl缘的含义。 enter image description here enter image description here

(图片来自网络)

专栏里,

  • 为了使 垂直的居中(或对齐) ,使用 MainAxis 对齐
  • 为了使 水平方向居中(或对齐) ,使用 交叉轴对准

划船里,

  • 为了使 水平方向居中(或对齐) ,使用 MainAxis 对齐
  • 为了使 垂直的居中(或对齐) ,使用 交叉轴对准

Oncept

取决于你如何把你的内容放在屏幕上。我们需要使用主轴和横轴对齐属性。

更多基本的布局概念: https://flutter.dev/docs/codelabs/layout-basics

划船主轴对齐运行水平和横轴对齐运行垂直。 在 纵队主轴对齐运行垂直和横轴对齐运行水平。