diff options
Diffstat (limited to 'lib/widgets/popular_list.dart')
-rw-r--r-- | lib/widgets/popular_list.dart | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/widgets/popular_list.dart b/lib/widgets/popular_list.dart new file mode 100644 index 0000000..2422a38 --- /dev/null +++ b/lib/widgets/popular_list.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + +import '../models/popular.dart'; +import 'popular_item.dart'; + +class PopularList extends StatelessWidget { + final List<Popular> popularList; + final void Function(Popular popular, bool favorited) onFavorited; + final void Function(Popular popular) onPressed; + + const PopularList( + this.popularList, { + super.key, + required this.onFavorited, + required this.onPressed, + }); + + @override + Widget build(BuildContext context) { + return GridView.builder( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + childAspectRatio: 2 / 3, + mainAxisSpacing: 10, + crossAxisSpacing: 10, + ), + itemCount: popularList.length, + itemBuilder: (context, index) { + return PopularItem( + popularList[index], + onFavorited: (favorited) => + onFavorited(popularList[index], favorited), + onPressed: () => onPressed(popularList[index]), + ); + }, + ); + } +} |