Search code examples
jsonobjectfluttercarousel

How do you access a sublist in one line Flutter


I have a model that looks like this

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"]  
  )
];

How would access all the imageurls in one statement instead of using multiple AssetsImages via the position in the array like below

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])
                ],

              )

Solution

  • Use map:

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