【问题标题】:Flutter row, align items individually in cross axis颤动行,在交叉轴上单独对齐项目
【发布时间】:2020-06-10 00:04:48
【问题描述】:

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

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

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

【问题讨论】:

  • 如果不将 widget4 包装在另一列中,这是不可能的
  • 是的...这可能很害怕...但是让我们给它一些时间,以防其他人想出一个有趣的方法

标签: flutter widget vertical-alignment


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,这很好,比添加列稍微简单一些,谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 2023-03-10
    • 2021-05-30
    • 2020-11-05
    • 2020-08-18
    • 2022-08-17
    • 2022-09-24
    • 2018-10-30
    相关资源
    最近更新 更多