在Flutter中,如何平衡Wrap widget的children?
In Flutter, how to balance the children of the Wrap widget?
在 Flutter 中,Wrap widget 尝试将 child 放置在主轴上与前一个 child 相邻的位置,如果没有足够的 space 来适应 child,它创建一个新的 运行 与交叉轴中现有的 children 相邻。
因此,例如,如果 3 children 适合水平 运行,而我们有 4 children,它将有 2 运行s:第一个3children,第二个1child.
相反,在定义了那个数量的运行之后,我希望它"balance"放置这些children,这样它就占据了相同数量的运行s,但 最小宽度 。
在上面的例子中,这意味着在第一个 运行 中有 2 children,在第二个中有 2 children。但是,当然,这应该适用于任意宽度的任意数量的 children。
我该怎么做?
按照 Rémi 的建议,我用自定义规则重新创建了 Wrap
小部件:https://pub.dev/packages/assorted_layout_widgets 中的 WrapSuper
小部件解决了这个问题。
它并不能完全保证最小的宽度,而是保证最小的粗糙度,这更准确地说是我想要的。
在 Flutter 中,Wrap widget 尝试将 child 放置在主轴上与前一个 child 相邻的位置,如果没有足够的 space 来适应 child,它创建一个新的 运行 与交叉轴中现有的 children 相邻。
因此,例如,如果 3 children 适合水平 运行,而我们有 4 children,它将有 2 运行s:第一个3children,第二个1child.
相反,在定义了那个数量的运行之后,我希望它"balance"放置这些children,这样它就占据了相同数量的运行s,但 最小宽度 。
在上面的例子中,这意味着在第一个 运行 中有 2 children,在第二个中有 2 children。但是,当然,这应该适用于任意宽度的任意数量的 children。
我该怎么做?
按照 Rémi 的建议,我用自定义规则重新创建了 Wrap
小部件:https://pub.dev/packages/assorted_layout_widgets 中的 WrapSuper
小部件解决了这个问题。
它并不能完全保证最小的宽度,而是保证最小的粗糙度,这更准确地说是我想要的。