Flutter 根据最小尺寸包装小部件,然后拉伸它们以填充可用宽度

Flutter 根据最小尺寸包装小部件,然后拉伸它们以填充可用宽度,flutter,flutter-layout,Flutter,Flutter Layout,Wrap不能包含扩展的小部件,因此是否有另一种方法可以让其子部件按照其所需的最小宽度进行布局,然后使用spaceBetween填充空间,以仅按照指定的间距进行拉伸 |---item---| |--item--| |--------item---------| 而不是 |-item-| |-item-| |-item-| 我对框架的Wrap实现进行了一些修改,以达到预期的效果。因为我只为我的特定用例(例如,包装的水平方向)构建了它,所以它不足以证明在颤振代码

Wrap
不能包含
扩展的
小部件,因此是否有另一种方法可以让其子部件按照其所需的最小宽度进行布局,然后使用
spaceBetween
填充空间,以仅按照指定的
间距进行拉伸

|---item---| |--item--|
|--------item---------|
而不是

|-item-|       |-item-|
|-item-|            

我对框架的
Wrap
实现进行了一些修改,以达到预期的效果。因为我只为我的特定用例(例如,
包装的水平方向
)构建了它,所以它不足以证明在颤振代码库中使用PR是正确的


但是如果有人感兴趣,我愿意私下分享实现的当前状态,或者共同努力扩展代码以发布修改。如果您对其中任何一项感兴趣,请给我发消息。

但是如果项目太大,您仍然希望将其移到下一行?没错。拉伸应该在使用元素的最小宽度进行包装后进行。您要求Flatter执行的操作非常违反直觉,因为您要求父窗口小部件的子窗口小部件在父窗口小部件计算出如何适合子窗口小部件后重新调整其大小,但这意味着父母必须根据孩子的新尺寸重新计算他们的适应情况。它很可能会变成一个无限循环。也就是说,
IntrinsicWidth
小部件可能有助于解决这个问题。
LayoutBuilder
在这种方法上存在问题。。。我不明白为什么这会违反直觉?据我所知,布局分为两个阶段:遍历传递约束的小部件树(这里应该使用项目所需的最小宽度来分配行),然后返回树并进行实际布局-无论如何都必须在某个点应用包装,那么为什么这里没有像
MainAxisAlignment.stretch
这样的选项呢?