fix: check crossAxisExtent (#1005)

This commit is contained in:
My-Responsitories
2025-08-12 18:24:54 +08:00
committed by GitHub
parent 690c4f5786
commit 705417f65b

View File

@@ -77,12 +77,17 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
} }
SliverGridLayout? layoutCache; SliverGridLayout? layoutCache;
double? crossAxisExtentCache;
@override @override
SliverGridLayout getLayout(SliverConstraints constraints) { SliverGridLayout getLayout(SliverConstraints constraints) {
// invoked before each frame // invoked before each frame
assert(_debugAssertIsValid(constraints.crossAxisExtent)); assert(_debugAssertIsValid(constraints.crossAxisExtent));
if (layoutCache != null) return layoutCache!; if (layoutCache != null &&
constraints.crossAxisExtent == crossAxisExtentCache) {
return layoutCache!;
}
crossAxisExtentCache = constraints.crossAxisExtent;
int crossAxisCount = int crossAxisCount =
((constraints.crossAxisExtent - crossAxisSpacing) / ((constraints.crossAxisExtent - crossAxisSpacing) /
(maxCrossAxisExtent + crossAxisSpacing)) (maxCrossAxisExtent + crossAxisSpacing))