From bc5042d3d91ba643ee5ad2c70d3ffa7f2e361ccc Mon Sep 17 00:00:00 2001 From: ashuntu Date: Wed, 28 Aug 2024 17:04:52 -0500 Subject: [PATCH] Fix spacing of rated app cards on large screens --- .../app_center/lib/widgets/snap_grid.dart | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/app_center/lib/widgets/snap_grid.dart b/packages/app_center/lib/widgets/snap_grid.dart index faaf2497b..287836967 100644 --- a/packages/app_center/lib/widgets/snap_grid.dart +++ b/packages/app_center/lib/widgets/snap_grid.dart @@ -8,7 +8,7 @@ import 'package:snapd/snapd.dart'; class AppCardGrid extends StatelessWidget { const AppCardGrid({ required this.appCards, - this.cardAspectRatio, + this.small = false, super.key, }); @@ -37,7 +37,7 @@ class AppCardGrid extends StatelessWidget { rating: entry.key + 1, ), ), - cardAspectRatio: 4.0, + small: true, ); factory AppCardGrid.fromDebs({ @@ -65,15 +65,31 @@ class AppCardGrid extends StatelessWidget { ); final Iterable appCards; - final double? cardAspectRatio; + final bool small; @override Widget build(BuildContext context) { final layout = ResponsiveLayout.of(context); + var columnCount = layout.cardColumnCount; + var cardAspectRatio = layout.cardSize.aspectRatio; + if (small) { + switch (layout.type) { + case ResponsiveLayoutType.small: + columnCount = 2; + cardAspectRatio = 2.5; + case ResponsiveLayoutType.medium: + columnCount = 3; + cardAspectRatio = 2.5; + case ResponsiveLayoutType.large: + columnCount = 4; + cardAspectRatio = 3.0; + } + } + return SliverGrid.builder( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: layout.cardColumnCount, - childAspectRatio: cardAspectRatio ?? layout.cardSize.aspectRatio, + crossAxisCount: columnCount, + childAspectRatio: cardAspectRatio, mainAxisSpacing: kCardSpacing - 2 * kCardMargin, crossAxisSpacing: kCardSpacing - 2 * kCardMargin, ),