How do you access a sublist in one line Flutter

450

Use map:

images: widget.activity.imageurl.map((i) => AssetImage(i)).toList()
Share:
450
Admin
Author by

Admin

Updated on December 15, 2022

Comments

  • Admin
    Admin over 1 year

    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])
                    ],
    
                  )
    
  • Admin
    Admin over 4 years
    Error Returned type 'MappedListIterable<String, AssetImage>' is not a subtype of type Widget
  • Ringil
    Ringil over 4 years
    @Deinterlect You probably need to do ToList()