flutter - 以一个接一个的顺序加载图像列表
问题描述
使用 StreamBuilder 从 firebase 获取图像 url 列表后
我使用了 ListView.builder 和这个包中的 TransitionToImage:
https://pub.dartlang.org/packages/flutter_advanced_networkimage
并制作了一张图片列表。
这是我的 Streambuilder / builder 代码:
builder: (_, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) return const Text('loading...');
var doc = snapshot.data;
List<String> pages = List.from(doc['pages']);
return ListView.builder(
itemCount: pages.length,
itemBuilder: (context, index) {
return TransitionToImage(
AdvancedNetworkImage("a url", timeoutDuration: Duration(minutes: 1)),
placeholder: CircularProgressIndicator(),
duration: Duration(milliseconds: 300),
);
});
},
ListView.builder 一次以随机顺序加载所有图像,这对我或用户来说看起来不太自然。
加载前一个索引中的图像后,有没有办法让 ListView.builder 加载图像?
解决方案
我会使用precacheImagepages
一张一张地加载图像,并在到达时替换 URL,pages
以便显示真实图像而不是占位符。
for(final page in pages) {
await precacheImage(page.downloadUrl, context);
page.displayUrl = page.downloadUrl;
setState(() => pages = pages.toList();
}
推荐阅读
- c# - 如何从字符串中删除一系列单个字母?
- python - 关闭 python 脚本后如何删除泡菜文件?
- xamarin - 如何在调试模式下将 Xamarin (Android) APK 部署到我的手机
- node.js - 节点程序总是在 process.on('SIGINT') 中的任务完成之前退出
- java - 如何在 Spring Boot 应用程序中使用 JPA 删除/getList
- node.js - Rect JS 安装问题
- excel - Excel VBA - 我收到运行时错误 424:使用 workbooks.open 打开另一个 Excel 文件时需要对象
- blockchain - 在多链中使用链上“笔记”发布链下项目?
- android - 如何根据外部事件打开应用程序
- java - 如何在多个联接表和条件上提高 JPA 查询性能和响应时间