首页 > 解决方案 > Flutter中如何平衡Wrap widget的children?

问题描述

在 Flutter 中,Wrap 小部件尝试将子元素放置在主轴上与前一个子元素相邻的位置,如果没有足够的空间容纳子元素,它会在横轴上与现有子元素相邻创建一个新的运行。

因此,例如,如果 3 个孩子适合水平运行,而我们有 4 个孩子,它将有 2 个运行:第一个有 3 个孩子,第二个有 1 个孩子。

相反,在定义了运行次数之后,我希望它“平衡”这些孩子的位置,以便它占用相同数量的运行,但宽度最少

在上面的示例中,这意味着第一次运行有 2 个孩子,第二次运行有 2 个孩子。但是,当然,这应该适用于任意数量的任意宽度的子代。

我怎样才能做到这一点?

标签: flutterflutter-layout

解决方案


正如 Rémi 所建议的,我Wrap使用自定义规则重新创建了小部件:https://pub.dev/packages/assorted_layout_widgetsWrapSuper中的小部件解决了这个问题。

它并不能完全保证最小的宽度,而是最小的粗糙度,这更准确地说是我想要的。


推荐阅读