[Flutter] 自動で生成したアイテムをクリック出来るようにする方法

下記の様なコードで作成したアイコンをクリックしたらそのURLに移管する方法を探しています。
アイコンのイメージとURLはリスト内リストで保管しようと思っています。
[[アイコン, url],[アイコン, url]]
よろしくお願いいたします。

出力画面
イメージ説明

コード

Flutter

1class _futureTestState extends State<futureTest> { 2 List fashionList = []; 3 List<String> fashionIcon = []; 4 5 Future<void> searchFire(String query) async { 6 final result = await FirebaseFirestore.instance 7 .collection("ranking") 8 .orderBy('fashion', descending: true) 9 .where('category', arrayContains: query) 10 .limit(4) 11 .get(); 12 setState(() { 13 fashionList = result.docs.map((e) => e.data()).toList(); 14 }); 15 return; 16 } 17 18 void fashionIconSingleGet(String name) async { 19 List tempList = []; 20 final result = await FirebaseFirestore.instance 21 .collection("influencer") 22 .where('name', isEqualTo: name) 23 .get(); 24 tempList = result.docs.map((e) => e.data()).toList(); 25 setState(() { 26 fashionIcon.add(tempList[0]['image']); 27 }); 28 } 29 30 Future<void> futureSet() async { 31 if (fashionList.isEmpty) { 32 searchFire('fashion'); 33 } 34 if (fashionIcon.isEmpty) { 35 for (var influencer in fashionList) { 36 fashionIconSingleGet(influencer['name']); 37 } 38 } 39 return; 40 } 41 @override 42 Widget build(BuildContext context) { 43 return FutureBuilder<void>( 44 future: futureSet(), 45 builder: (snap, context) { 46 return SingleChildScrollView( 47 child: Center( 48 child: Column(children: [ 49 const SizedBox(height: 40,), 50 const Text('ファッションランキング'), 51 const SizedBox(height: 10,), 52 Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, 53 children: List.from(fashionIcon.map((name) => CircleAvatar( 54 radius: 40, backgroundImage: NetworkImage(name))))), 55 const SizedBox(height: 30,), 56 const Text('コスメランキング'), 57 const SizedBox(height: 10,), 58 ]), 59 ), 60 ); 61 }, 62 ); 63 } 64}

コメントを投稿

0 コメント