颤动行,在横轴上单独对齐项目

Flutter row, align items individually in cross axis

在行小部件中,使用 crossAxisAlignment: CrossAxisAlignment.center 属性,行内的所有小部件都将在行内垂直居中,如预期的那样。

但是如果我只希望其中一个对齐到开头,我该怎么办,如下图所示:

我能想到一些方法来做到这一点,比如在最后一个小部件中添加一个 Column,并使用主轴对齐,Expanded...等等,但看起来像如此简单的输出有很多样板代码,可能有更简单、更优雅的方法来实现这一点??

您可以将小部件 4 包装在 Container 中并将高度设置为小部件 3 并添加 Alignment.topCenter

啊,偶然发现了这个并找到了解决方案。

将小部件 3 和 4 包装在另一个 Row 中,并将内部 Row 设置为 CrossAxisAlignment.start

Row(
  children: [
    LargeWidget('w1'),
    LargeWidget('w2'),
    Row(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        LargeWidget('w3'),
        SmallWidget('w4'),
      ],
    ),
  ],
);

这使您不必知道每个小部件的高度。