颤动行,在横轴上单独对齐项目
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'),
],
),
],
);
这使您不必知道每个小部件的高度。
在行小部件中,使用 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'),
],
),
],
);
这使您不必知道每个小部件的高度。