buildChildren method

List<Widget> buildChildren(
  1. List<ResponsiveRowColumnItem> children,
  2. bool rowColumn,
  3. double? spacing
)

Logic to construct widget children.

Implementation

List<Widget> buildChildren(
    List<ResponsiveRowColumnItem> children, bool rowColumn, double? spacing) {
  // Sort ResponsiveRowColumnItems by their order.
  List<ResponsiveRowColumnItem> childrenHolder = [];
  childrenHolder.addAll(children);
  childrenHolder.sort((a, b) {
    if (rowColumn) {
      return a.rowOrder.compareTo(b.rowOrder);
    } else {
      return a.columnOrder.compareTo(b.columnOrder);
    }
  });
  // Add padding between widgets..
  List<Widget> widgetList = [];
  for (int i = 0; i < childrenHolder.length; i++) {
    widgetList.add(childrenHolder[i].copyWith(rowColumn: rowColumn));
    if (spacing != null && i != childrenHolder.length - 1) {
      widgetList.add(Padding(
          padding: rowColumn
              ? EdgeInsets.only(right: spacing)
              : EdgeInsets.only(bottom: spacing)));
    }
  }
  return widgetList;
}