当我得到图像数据然后放入图像toList时,该怎么办?
我是说,我用这个方法来获取数据
getFeature() async {
final docSnapshot = await FirebaseFirestore.instance
.collection('Campsite')
.doc(widget.CamperSiteID)
.get();
final CamperSiteSummary =
List<int>.from(docSnapshot.data()?['CamperSiteSummary'] ?? []);
setState(() {
CamperSiteSummary.forEach((element) {
switch (element) {
case 1:
SummaryIcon = 'assest/kitchen.png';
SummaryName = 'Kitchen';
break;
case 2:
SummaryIcon = 'assest/barbecue.png';
SummaryName = 'Barbecue';
break;
case 3:
SummaryIcon = 'assest/suit_any_car.png';
SummaryName = 'Suit any car';
break;
case 4:
SummaryIcon = 'assest/laundromat.png';
SummaryName = 'Laundromat';
break;
case 5:
SummaryIcon = 'assest/dump_station.png';
SummaryName = 'Dump station';
break;
}
print(element);
});
});我可以得到日期,但是当数据匹配时,如何显示SummaryIcon?
如果数据与案例1、3、4匹配
我希望它能显示图像,然后放入容器()
发布于 2022-06-17 03:38:01
使用ValueListenableBuilder和ValueNotifier
创建模型
class Summary {
String summaryIcon;
String summaryName;
Summary(this.summaryIcon, this.summaryName);
}in小部件
ValueNotifier<List<Summary>> listValueNotifier = ValueNotifier([]);
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<List<Summary>>(
valueListenable: listValueNotifier,
builder: (context, data, child) {
return Container(
child: Row(
children: [...data.map((e) => Image.asset(e.summaryName)).toList()],
));
});}
getFeature() async {
final docSnapshot = await FirebaseFirestore.instance
.collection('Campsite')
.doc(widget.CamperSiteID)
.get();
final CamperSiteSummary =
List<int>.from(docSnapshot.data()?['CamperSiteSummary'] ?? []);
List<Summary> list = [];
CamperSiteSummary.forEach((element) {
var SummaryIcon;
var SummaryName;
switch (element) {
case 1:
SummaryIcon = 'assest/kitchen.png';
SummaryName = 'Kitchen';
break;
case 2:
SummaryIcon = 'assest/barbecue.png';
SummaryName = 'Barbecue';
break;
case 3:
SummaryIcon = 'assest/suit_any_car.png';
SummaryName = 'Suit any car';
break;
case 4:
SummaryIcon = 'assest/laundromat.png';
SummaryName = 'Laundromat';
break;
case 5:
SummaryIcon = 'assest/dump_station.png';
SummaryName = 'Dump station';
break;
}
print(element);
if (SummaryIcon != null && SummaryName != null) {
list.add(Summary(SummaryIcon, SummaryName));
}
});
listValueNotifier.value = list;}
https://stackoverflow.com/questions/72653149
复制相似问题