gpt4 book ai didi

flutter - 跳出For循环以获取无效的图像链接 flutter

转载 作者:行者123 更新时间:2023-12-03 03:04:21 27 4
gpt4 key购买 nike

我正在尝试通过图像创建一本书,其中包含本章的内容。图片链接采用以下方式:
https://www.someurl.com/chapter1/1.jpg
https://www.someurl.com/chapter1/2.jpg
https://www.someurl.com/chapter1/3.jpg
.
.
.

不确定每章有多少个图像链接。我正在使用循环创建图像列表。进行迭代并最终找不到图像时,它将在下一章显示一个使用errorWidget的按钮,并且应该退出循环。通过以下实现,可以正确显示图像,但不会中断循环,并且会创建多个按钮。

编辑:我现在正在最后检查图像验证。现在,它仅显示一张图像,但会打印200(状态码),直到一次无效并退出循环为止。

 createBook() async {
for(int i=1; i<100; i++){
bool imageEnd = false;
String imageUrl = 'https://www.someurl.com/chapter1/'+i+'.jpg';
bookList.add(CachedNetworkImage(
imageUrl: imageUrl,
fit: BoxFit.cover,
placeholder: (context, url) => Container(child: Center(child: CircularProgressIndicator())),
errorWidget: (context, url, error) {
imageEnd = true;
return BtnNextChapter();
},
));
if(imageEnd){
break;
}
final response = await http.get(imageUrl);
print(response.statusCode);
if (response.statusCode != 200) {
break;
}
}
}

enter image description here

最佳答案

从逻辑上讲,您应该有一种方法来知道每章有多少本书,并应该对其进行多次迭代。但是,要修复您的代码,请尝试以下操作。

  createBook(){
for(int i=1; i<100; i++){
final imageUrl = 'https://www.someurl.com/chapter1/'+i+'.jpg';
final response = await http.get(imageUrl);
print(response.statusCode);

if (response.statusCode != 200) {
bookList.add(BtnNextChapter());
} else{
bookList.add(CachedNetworkImage(
imageUrl: imageUrl,
fit: BoxFit.cover,
placeholder: (context, url) => Container(child: Center(child: CircularProgressIndicator())),
);
}
}
}

使用以上代码,如果任何章节中的miga数超过100,您将错过这些图像。

关于flutter - 跳出For循环以获取无效的图像链接 flutter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61085379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com