预取由CachedNetworkImage显示的图像

时间:2019-10-07 14:00:36

标签: networking flutter prefetch

Flutter的CachedNetworkImage几乎是魔术,但是如果他们提供一种在必须显示图像之前下载图像的方法,那就更好了。我想在一个屏幕上下载图像,然后使用CachedNetworkImage在另一个屏幕上显示它们。如果预取尝试失败,则CachedNetworkImage应该会照常运行,下载并缓存图像。

在Flutter中有什么常用的预取图像方法吗?

2 个答案:

答案 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告诉您是否已加载图像。