buildAndJoinWidgets<T> static method
Builds widgets from items and joins them with an interleaved separator.
Parameters:
items: List of items to build widgets fromwidgetBuilder: Function to build a widget for each iteminterleaved: Separator widget to insert between itemsstartWithInterleaver: Whether to add separator before first item. Defaults to trueendWithInterleaver: Whether to add separator after last item. Defaults to truetitle: Optional title widget to add at the beginning
Example:
List<Widget> widgets = CoolUtil.buildAndJoinWidgets(
items: ['A', 'B', 'C'],
widgetBuilder: (s) => Text(s),
interleaved: Divider()
);
Implementation
static List<Widget> buildAndJoinWidgets<T>(
{required List<T> items,
required Widget Function(T item) widgetBuilder,
required Widget interleaved,
bool startWithInterleaver = true,
bool endWithInterleaver = true,
Widget? title}) {
List<Widget> ret = [];
if (title != null) {
ret.add(title);
}
if (startWithInterleaver) {
ret.add(interleaved);
}
for (var i in items) {
ret.add(widgetBuilder(i));
ret.add(interleaved);
}
if (!endWithInterleaver) {
if (ret.isNotEmpty) {
ret.removeLast();
}
}
return ret;
}