WidgetListExtensions extension

Composes widget lists into standard Flutter multi-child layouts.

These helpers preserve Flutter's layout behavior and constraints. They do not insert spacing, choose theme values, or make a layout scrollable. Do not mutate a list after passing it to a widget; create a new list instead.

final layout = <Widget>[
  const Text('Title'),
  const Text('Details'),
].column(crossAxisAlignment: CrossAxisAlignment.start);
on

Methods

column({Key? key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, MainAxisSize mainAxisSize = MainAxisSize.max, TextDirection? textDirection, VerticalDirection verticalDirection = VerticalDirection.down, TextBaseline? textBaseline}) → Column

Available on List<Widget>, provided by the WidgetListExtensions extension

Arranges these widgets vertically without scrolling.
row({Key? key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, MainAxisSize mainAxisSize = MainAxisSize.max, TextDirection? textDirection, VerticalDirection verticalDirection = VerticalDirection.down, TextBaseline? textBaseline}) → Row

Available on List<Widget>, provided by the WidgetListExtensions extension

Arranges these widgets horizontally without scrolling.
stack({Key? key, AlignmentGeometry alignment = AlignmentDirectional.topStart, TextDirection? textDirection, StackFit fit = StackFit.loose, Clip clipBehavior = Clip.hardEdge}) → Stack

Available on List<Widget>, provided by the WidgetListExtensions extension

Places these widgets in overlapping layers, painted in list order.
wrap({Key? key, Axis direction = Axis.horizontal, WrapAlignment alignment = WrapAlignment.start, double spacing = 0, WrapAlignment runAlignment = WrapAlignment.start, double runSpacing = 0, WrapCrossAlignment crossAxisAlignment = WrapCrossAlignment.start, TextDirection? textDirection, VerticalDirection verticalDirection = VerticalDirection.down, Clip clipBehavior = Clip.none}) → Wrap

Available on List<Widget>, provided by the WidgetListExtensions extension

Arranges these widgets in runs when available space is exhausted.