ResponsiveStaggeredGrid.builder constructor

ResponsiveStaggeredGrid.builder({
  1. Key? key,
  2. int crossAxisCount = 120,
  3. double mainAxisSpacing = 7,
  4. double crossAxisSpacing = 4,
  5. AxisDirection? axisDirection = AxisDirection.down,
  6. EdgeInsetsGeometry? contantPadding,
  7. required List<ResponsiveStaggeredGridTile> builder(
    1. LayoutSize layoutSize,
    2. BuildContext context,
    3. BoxConstraints boxConstraints
    ),
})

Implementation

ResponsiveStaggeredGrid.builder({
  super.key,
  int crossAxisCount = 120,
  double mainAxisSpacing = 7,
  double crossAxisSpacing = 4,
  AxisDirection? axisDirection = AxisDirection.down,
  EdgeInsetsGeometry? contantPadding,
  required List<ResponsiveStaggeredGridTile> Function(
    LayoutSize layoutSize,
    BuildContext context,
    BoxConstraints boxConstraints,
  ) builder,
}) : super(builder: (LayoutSize layoutSize, BuildContext context,
          BoxConstraints boxConstraints) {
        final children = builder(layoutSize, context, boxConstraints);

        children.sort((a, b) =>
            a.index.get(layoutSize).compareTo(b.index.get(layoutSize)));

        return Padding(
          padding: contantPadding ?? EdgeInsets.zero,
          child: StaggeredGrid.count(
            crossAxisCount: crossAxisCount,
            mainAxisSpacing: mainAxisSpacing,
            crossAxisSpacing: crossAxisSpacing,
            axisDirection: axisDirection,
            children:
                children.map((child) => child.build(layoutSize)).toList(),
          ),
        );
      });