responsiveGrid static method

Widget responsiveGrid(
  1. BuildContext context, {
  2. required List<Widget> children,
  3. int? mobileColumns,
  4. int? tabletColumns,
  5. int? desktopColumns,
  6. double spacing = 16,
  7. double runSpacing = 16,
})

Implementation

static Widget responsiveGrid(
  BuildContext context, {
  required List<Widget> children,
  int? mobileColumns,
  int? tabletColumns,
  int? desktopColumns,
  double spacing = 16,
  double runSpacing = 16,
}) {
  final columnCount = columns(
    context,
    mobile: mobileColumns ?? 1,
    tablet: tabletColumns,
    desktop: desktopColumns,
  );

  if (columnCount == 1) {
    return Column(
      children: children
          .map((child) => Padding(
                padding: EdgeInsets.only(bottom: runSpacing),
                child: child,
              ))
          .toList(),
    );
  }

  return Wrap(
    spacing: spacing,
    runSpacing: runSpacing,
    children: children
        .map((child) => SizedBox(
              width: (MediaQuery.of(context).size.width - (spacing * (columnCount - 1))) / columnCount,
              child: child,
            ))
        .toList(),
  );
}