如何在一行 Flutter 中访问子列表

Posted

技术标签:

【中文标题】如何在一行 Flutter 中访问子列表【英文标题】:How do you access a sublist in one line Flutter 【发布时间】:2020-03-27 13:52:48 【问题描述】:

我有一个看起来像这样的模型

class Activity 
  int id;
  String title;
  List <String> imageurl;

  Activity(this.id, this.title, this.imageurl);


List<Activity> activities = [
  Activity(
      id: 1,
      title: "Ministry of Education",
      imageurl: ["assets/images/place1.jpg","assets/images/place2.jpg","assets/images/place3.jpg"  ]
  ),
  Activity(
      id: 2,
      title: "Ministry of Sports",
      imageurl:["assets/images/place4.jpeg","assets/images/place5.jpg","assets/images/place6.jpg"]
  ),
  Activity(
      id: 3,
      title: "Ministry of Technology",
      imageurl: ["assets/images/place7.jpg","assets/images/place8.jpg","assets/images/place9.jpg"]  
  )
];

如何在一个语句中访问所有图像 URL,而不是通过数组中的位置使用多个 AssetsImages,如下所示

Carousel(
                boxFit: BoxFit.cover,
                autoplay: true,
                animationCurve: Curves.fastOutSlowIn,
                animationDuration: Duration(milliseconds: 1000),
                indicatorBgPadding: 6,
                dotBgColor: Colors.grey.withOpacity(.1),
                dotSize: 4.0,
                showIndicator: true,
                images: [AssetImage(widget.activity.imageurl[0]),
                  AssetImage(widget.activity.imageurl[1]),
                  AssetImage(widget.activity.imageurl[2])
                ],

              )

【问题讨论】:

【参考方案1】:

使用map:

images: widget.activity.imageurl.map((i) => AssetImage(i)).toList()

【讨论】:

错误返回类型 'MappedListIterable' 不是 Widget 类型的子类型 @Deinterlect 你可能需要做ToList()

以上是关于如何在一行 Flutter 中访问子列表的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 如何访问 ListView.builder 中的一个元素?

在 Flutter 中,当子组件的 build 方法中没有回调时,如何从子组件中读取数据?

如何在列表视图顶部添加一行

如何从 Flutter 中的网格视图计数访问生成列表中的特定单元格?

如何访问 UIScrollView 的特定子视图(UIWebView)并将一行 Java 传递给它

Flutter 在 ListView 中仅重建一行