首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我得到图像数据然后放入图像toList时,该怎么办?

当我得到图像数据然后放入图像toList时,该怎么办?
EN

Stack Overflow用户
提问于 2022-06-17 00:23:28
回答 1查看 26关注 0票数 0

当我得到图像数据然后放入图像toList时,该怎么办?

我是说,我用这个方法来获取数据

代码语言:javascript
复制
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匹配

我希望它能显示图像,然后放入容器()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-17 03:38:01

使用ValueListenableBuilderValueNotifier

创建模型

代码语言:javascript
复制
class Summary {
  String summaryIcon;
  String summaryName;
  Summary(this.summaryIcon, this.summaryName);
}

in小部件

代码语言:javascript
复制
 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()],
      ));
    });

}

代码语言:javascript
复制
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;

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72653149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档