build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Implementation

@override
Widget build(BuildContext context) {
  return ResponsiveBuilder(
    builder: (
      BuildContext context,
      ResponsiveSize responsiveSize,
    ) {
      List<Widget> columnChildren = <Widget>[];

      int total = 0;

      double minHeight = -1;

      List<Widget> rowChildren = <Widget>[];

      for (final Responsive child in children) {
        int size = child.responsiveSize(responsiveSize);

        if (size > 0) {
          if (total + size > maxColumns) {
            columnChildren.add(_createRow(rowChildren, minHeight));
            rowChildren = <Widget>[];
            total = 0;
            minHeight = -1;
          }

          if (child.safeMinHeight > minHeight) {
            minHeight = child.safeMinHeight;
          }

          total += size;

          rowChildren.add(
            Flexible(
              flex: size,
              child: padding != null
                  ? Padding(
                      padding: padding!,
                      child: child,
                    )
                  : child,
            ),
          );
        }
      }

      if (rowChildren.isNotEmpty) {
        columnChildren.add(_createRow(rowChildren, minHeight));
      }

      return ChildBuilder(
        child: Column(
          children: columnChildren,
        ),
        builder: (BuildContext context, Widget child) =>
            margin == null ? child : Padding(padding: margin!, child: child),
      );
    },
  );
}