FlutstrapGrid.autoFit constructor
FlutstrapGrid.autoFit({
- required List<
Widget> children, - required double minColumnWidth,
- double gap = FSSpacing.md,
- bool fluid = false,
- EdgeInsetsGeometry? padding,
- EdgeInsetsGeometry? margin,
Create an auto-fit grid that adjusts columns based on available width
Implementation
factory FlutstrapGrid.autoFit({
required List<Widget> children,
required double minColumnWidth,
double gap = FSSpacing.md,
bool fluid = false,
EdgeInsetsGeometry? padding,
EdgeInsetsGeometry? margin,
}) {
assert(children.isNotEmpty, 'Children list cannot be empty');
assert(minColumnWidth > 0, 'Min column width must be positive');
return FlutstrapGrid(
children: [
LayoutBuilder(
builder: (context, constraints) {
final containerWidth = constraints.maxWidth;
final columns = FSGridUtils.calculateOptimalColumns(
containerWidth,
minColumnWidth,
gap,
);
final rows = FSGridUtils.distributeItems(children, columns);
return Column(
children: rows.map((rowItems) {
return FlutstrapRow(
children: rowItems.map((item) {
return Expanded(
child: item,
);
}).toList(),
gap: gap,
);
}).toList(),
);
},
),
],
fluid: fluid,
padding: padding,
margin: margin,
);
}