微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

"RangeError (index): Invalid value: Valid value range is empty: 2" with flutter carousel

如何解决"RangeError (index): Invalid value: Valid value range is empty: 2" with flutter carousel

imageList 列表包含从 JSON 文件提取的图像路径。但是,此问题仅遇到一次,但在热重载后消失。 使用的包:carousel_slider:^3.0.0

代码

CarouselSlider(
                        options: CarouselOptions(
                          height: 250.0,enlargeCenterPage: true,autoplay: true,reverse: false,enableInfiniteScroll: true,autoplayInterval: Duration(seconds: 3),autoplayAnimationDuration: Duration(milliseconds: 2000),pauseAutoplayOnTouch: true,scrollDirection: Axis.horizontal,),items: imageList.map((img) {
                          return Builder(
                            builder: (BuildContext context) {
                              return Container(
                                margin: EdgeInsets.symmetric(
                                  vertical: 10.0,horizontal: 10.0
                                ),decoration: Boxdecoration(
                                  color: Colors.transparent,child: Image.asset(
                                  img,fit: BoxFit.fill,);
                            },);
                        }).toList(),

解决方法

我猜你的 imageList 一开始是空的,当你填充它时你不会调用 setstate() ,如果你是它意味着轮播不允许你使用空列表 添加一个 if 语句,如果列表为空,则不会构建 carouselSlider

if(!imageList.isEmpty)
  CarouselSlider()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。