diff --git a/lib/pages/main.dart b/lib/pages/main.dart index e376ad6..4734eaa 100644 --- a/lib/pages/main.dart +++ b/lib/pages/main.dart @@ -84,6 +84,11 @@ class _MainPageState extends State { filteredData = value; items = value; itemViewCount = min(5, value.length); + WidgetsBinding.instance.addPostFrameCallback((_) { + for (var element in filteredData.sublist(0, itemViewCount)) { + precacheImage(NetworkImage(element.images[0].url), context); + } + }); })); } @@ -112,7 +117,12 @@ class _MainPageState extends State { filteredData = items .where((element) => (element.title).contains(searchText)) .toList(); - itemViewCount = filteredData.length; + itemViewCount = min(filteredData.length, itemViewCount); + }); + WidgetsBinding.instance.addPostFrameCallback((_) { + for (var element in filteredData.sublist(0, itemViewCount)) { + precacheImage(NetworkImage(element.images[0].url), context); + } }); } @@ -215,11 +225,12 @@ class _MainPageState extends State { shrinkWrap: true, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: min( - (MediaQuery.sizeOf(context).width ~/ 200) - .toInt(), - 8), - ), + crossAxisCount: min( + (MediaQuery.sizeOf(context).width ~/ + 200) + .toInt(), + 8), + childAspectRatio: 1.0), itemCount: itemViewCount, itemBuilder: (context, index) { final product = filteredData[index];