buildResponsiveGridView static method
dynamic
buildResponsiveGridView(})
Implementation
static buildResponsiveGridView(
context, {
required final List<Widget> children,
int count = 3,
final int? mobileCount = 1,
final int? tabletCount = 2,
final int? desktopCount,
final double? aspectRatio,
final Axis scrollDirection = Axis.vertical,
final String type = "count",
}) {
if ("count" == type) {
if (MediaQuery.of(context).size.width < tabletWidth) {
count = mobileCount ?? count;
} else if (MediaQuery.of(context).size.width < desktopWidth) {
count = tabletCount ?? count;
} else {
count = desktopCount ?? count;
}
return GridView.count(
crossAxisCount: count,
childAspectRatio:
aspectRatio ?? MediaQuery.of(context).size.height / 400,
shrinkWrap: true,
scrollDirection: scrollDirection,
children: children);
} else if ("extent" == type) {
double maxWidth = 0;
for (Widget item in children) {
maxWidth = math.max(calculateContentSize(item).width, maxWidth);
}
return GridView.extent(
maxCrossAxisExtent: maxWidth,
shrinkWrap: true,
children: children,
);
} else {
throw AppException(
name: "InvalidGridViewException",
message: "Invalid GridView",
description:
"Gridview.$type cannot be rendered. Implementation required");
}
}