【问题标题】:Lazy load of images in Flutter?在 Flutter 中延迟加载图像?
【发布时间】:2019-02-24 12:23:38
【问题描述】:

当用户点击 FAB 时,我的应用会从 Internet 加载一张新图片作为屏幕的背景图片。我可以在用户点击屏幕之前确定要加载的 URL。

有没有办法在需要通过 FadeInImage 或其他 Flutter Widget 图像显示机制显示图像之前延迟加载图像?

【问题讨论】:

  • ImageProvider
  • 谢谢。这不就是 image.network 吗?你有我可以学习的sn-p代码吗?
  • 是的。谢谢你。该代码无助于解释如何缓存和检索图像。它更像是制作任何通用提供者的骨架代码。再一次,谢谢你,但它的帮助很小(至少我能看到......我猜我很容易混淆)
  • "The code doesn't help explain how to cache and retrieve images." 是的,确实如此,参见_getImage() 方法

标签: flutter


【解决方案1】:

您可以使用precacheImage 方法在用户界面中请求之前加载图像。任何未来对匹配图像的请求——在网络图像的情况下是相同的 url——将从缓存中提取。要加载网络图像,您可以将NetworkImage 类的实例传递给它。

例子:

class SomeWidgetState extends State<SomeWidget> {

  @override
  void initState() {
    super.initState();
    precacheImage(NetworkImage('someurl.jpg'));
  }

  ...
}

【讨论】:

  • 谢谢。当然看起来很有希望!文档说明:只要两个图像共享相同的密钥,ImageCache 就会找到该图像。有没有办法确保我使用相同的 URL 它是相同的密钥?
  • 只有 URL 必须匹配
  • 如何从 API 加载图片?
猜你喜欢
  • 2010-10-06
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
相关资源
最近更新 更多