Flutter的CachedNetworkImage
几乎是魔术,但是如果他们提供一种在必须显示图像之前下载图像的方法,那就更好了。我想在一个屏幕上下载图像,然后使用CachedNetworkImage
在另一个屏幕上显示它们。如果预取尝试失败,则CachedNetworkImage
应该会照常运行,下载并缓存图像。
在Flutter中有什么常用的预取图像方法吗?
答案 0 :(得分:0)
您可以使用precacheImage
将图像添加到Flutter的图像缓存中。
precacheImage(CachedNetworkImageProvider(imgaeUrl), context)
Ps:我正在使用手机,当我访问系统时将对其进行编辑和格式化。
答案 1 :(得分:0)
像下面的代码一样预缓存CachedNetworkImage
Image myImage;
bool _loading = true;
@override
void initState() {
myImage = Image(
image: CachedNetworkImageProvider("http://via.placeholder.com/350x150"),
);
myImage.image
.resolve(ImageConfiguration())
.addListener(ImageStreamListener((_, __) {
if (mounted) {
setState(() {
_loading = false;
});
}
}));
super.initState();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
precacheImage(myImage.image, context);
}
并使用myImage作为窗口小部件。 _loading告诉您是否已加载图像。