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(),