calcItemSize method
Implementation
void calcItemSize(SliverGridDelegate delegate, double layoutWidth) {
double width = 0, height = 0;
if (delegate is SliverGridDelegateWithFixedCrossAxisCount) {
_crossSpacing = delegate.crossAxisSpacing;
_mainSpacing = delegate.mainAxisSpacing;
width = (layoutWidth - ((delegate.crossAxisCount - 1) * _mainSpacing)) /
delegate.crossAxisCount;
height = delegate.mainAxisExtent ?? width * delegate.childAspectRatio;
} else if (delegate is SliverGridDelegateWithMaxCrossAxisExtent) {
_crossSpacing = delegate.crossAxisSpacing;
_mainSpacing = delegate.mainAxisSpacing;
width = delegate.maxCrossAxisExtent;
if (width > layoutWidth) width = layoutWidth;
height = delegate.mainAxisExtent ?? width * delegate.childAspectRatio;
}
_itemSize = Size(width.roundToDouble(), height.roundToDouble());
}