如何解决相应地加载图像列表扑
我正在构建漫画应用程序。为了使漫画章节的加载速度更快。我希望图像依次加载一个。图像加载完成后,将直接显示在浏览量中。我不知道如何一张一张地加载图像并编辑页面视图以显示它们。
解决方法
为了更快地加载图像,您可以尝试使用cached_network_image软件包,如下所示:
CachedNetworkImage(
imageUrl: "http://via.placeholder.com/350x150",placeholder: (context,url) => CircularProgressIndicator(),errorWidget: (context,url,error) => Icon(Icons.error),),
它将一直显示占位符,直到加载图像为止,以便用户可以看到有多少图像并等待直到加载,并使用errorWidget显示是否有图像出现问题。所以我建议使用它,它更容易。除非您需要一些复杂的代码,否则可以尝试使用ScrollController
将其放入ListView.builder
中。像这样在initState中初始化滚动控制器:
final _scrollController = ScrollController();
@override
void initState() {
super.initState();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
// scroll has reach end,now load more images.
loadMore();
}
});
}
您不能在setState
中使用initState
,所以这就是为什么我创建另一个方法来调用它的原因:
Future<void> loadMore() async {
final response = await api.get("curated?per_page=50&page=$_currentPage");
if (response.statusCode == 200) {
var tempList = Pages.fromJson(response.data);
setState(() {
isLoading = false;
wallpaper.addAll(tempList.photos);
});
}
return null;
}
所以我希望您能理解,是的,它更复杂,所以就像我说的,我建议您使用CachedNetworkImage
。
使用StreamBuilder,它将为您完成所有工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。