Prevent vertical scroll in shrine by ensuring card size fits the screen (#30455)
diff --git a/examples/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart b/examples/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
index 1620985..589f9c7 100644
--- a/examples/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
+++ b/examples/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
@@ -31,10 +31,12 @@
const double spacerHeight = 44.0;
final double heightOfCards = (constraints.biggest.height - spacerHeight) / 2.0;
- final double heightOfImages = heightOfCards - ProductCard.kTextBoxHeight;
- final double imageAspectRatio = (heightOfImages >= 0.0 && constraints.biggest.width > heightOfImages)
- ? constraints.biggest.width / heightOfImages
- : 33 / 49;
+ final double availableHeightForImages = heightOfCards - ProductCard.kTextBoxHeight;
+ // Ensure the cards take up the available space as long as the screen is
+ // sufficiently tall, otherwise fallback on a constant aspect ratio.
+ final double imageAspectRatio = availableHeightForImages >= 0.0
+ ? constraints.biggest.width / availableHeightForImages
+ : 49.0 / 33.0;
return ListView(
physics: const ClampingScrollPhysics(),