flutter - 有没有办法将大量资产图像显示为列表视图?
问题描述
我的应用中有大约 300 多张图片作为资产图片。我想在我的应用程序中显示它们的简短描述。有没有办法将它们显示为列表视图而不是单独给出它们的路径?我希望有一种这样的方法,以便我可以使用它们的索引访问每个。
ListView.builder(
itemCount: litems.length,
itemBuilder: (BuildContext ctxt, int index) {
return Text(litems[index]);
}
)
另外,如果不是...请建议我显示如此大量资产图像的最佳方式。
解决方案
声明列表变量
List<String> imagesList;
获取图片:
Future _initImages() async {
final manifestContent =
await DefaultAssetBundle.of(context).loadString('AssetManifest.json');
final Map<String, dynamic> manifestMap = json.decode(manifestContent);
final imagePaths = manifestMap.keys
.where((String key) => key.contains('images/')) // mention folder where all images exists
.toList();
setState(() {
imagesList = imagePaths;
});
}
从 initState() 调用
@override
void initState() {
// TODO: implement initState
super.initState();
_initImages();
}
最后,您可以imagesList
在您的ListView
推荐阅读
- c++ - 在封闭类模板中引用特化时成员类模板的隐式实例化
- node.js - 如何在 mongoose(mongoDB) 中获取一份文档?
- python - 有人可以澄清在 Python 中继承私有属性吗?
- git - Jenkins批处理命令不使用系统路径
- algolia - 与 Algolia 部分匹配邮政编码
- javascript - 如何在捕获中抛出错误,而不是 UnhandledPromiseRejection
- python - 如何将匹配的单元格值附加到列表中?
- c# - Asp.net Core 3.1 启动 AddIdentity Proplem(没有为类型 '.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' 注册的服务)
- docker - 启用 SELinux 的服务器上的 Docker 挂载卷
- excel - 需要 VBA 代码方面的帮助 转换 CSV > XLS