【发布时间】:2021-03-20 20:25:44
【问题描述】:
我有一个有 2 个孩子的专栏。第一个孩子有固定高度,第二个孩子有动态内容。
我希望第一个孩子位于屏幕顶部,第二个孩子位于垂直中间。
所以我添加了一个空的第三个孩子,并使第一个和第三个孩子灵活,以便他们平等地共享垂直空间:
Column(
children: [
Flexible(
child: Column(
children: [_firstChild()],
),
),
_secondChild(),
Flexible(child: Container()),
],
)
这在第二个孩子的内容很短时有效。
但如果第二个孩子长高了,它会夹住第一个孩子:
Flexible 不应该在fit: FlexFit.loose 时只分配空白空间吗?我尝试了两种fit 的可能性。我试图将第一个孩子放在 SizedBox 和 Align 中
我试图让第三个孩子成为Spacer。到目前为止没有任何效果。空的第三个孩子占据了剩余垂直空间的一半。
编辑:
当第二个孩子的高度太大而无法使其垂直居中而不剪裁第一个孩子时,我希望它的行为就像默认的Column 和MainAxisAlignment.start(如第一张图片)
【问题讨论】:
-
第二种情况你想要什么?
Center和Stack你可以吗? -
哦,如果使用
Stack和Center,第二个孩子将与第一个孩子重叠。如果第二个孩子太高,我希望它坐在第一个孩子下面。它不再需要位于中心。 -
基本上,如果有空间,我希望第二个孩子位于垂直中心,如果没有,我希望它直接位于第一个孩子的下方。
-
然后看我的回答