WrapSuper constructor
WrapSuper
is a Wrap
with a better, minimum raggedness algorithm
for line-breaks. Just like a regular Wrap
widget with
direction = Axis.horizontal
, WrapSuper
displays its children in lines.
It will leave spacing
horizontal space between each child,
and it will leave lineSpacing
vertical space between each line.
Each line will then be aligned according to the alignment
.
WrapSuper
with WrapType.fit
is just like Wrap
.
However, WrapSuper
with WrapType.balanced
(the default)
follows a more balanced layout. It will result in the same number
of lines as Wrap
, but lines will tend to be more similar in width.
You can see my original StackOverflow question that prompted this widget here: https://stackoverflow.com/questions/51679895/in-flutter-how-to-balance-the-children-of-the-wrap-widget
And you can see the algorithm I am using here (Divide and Conquer): https://xxyxyz.org/line-breaking/
Implementation
const WrapSuper({
Key? key,
this.wrapType = WrapType.balanced,
this.wrapFit = WrapFit.min,
this.spacing = 0.0,
this.lineSpacing = 0.0,
this.alignment = WrapSuperAlignment.left,
List<Widget> children = const [],
}) : super(key: key, children: children);