【问题标题】:Flutter cached_network_image cause app to crashFlutter cached_network_image 导致应用崩溃
【发布时间】:2022-01-21 14:19:07
【问题描述】:

当我一次滚动查看这么多图片时,我的应用使用了大量缓存图像(我认为这是导致我的应用崩溃的原因)。

我的应用完全是关于列表/网格视图中的图像。

将它们全部缓存是个好习惯吗?

注意: 请注意,我正在使用 SliverGrid,它会延迟加载图像。

【问题讨论】:

  • 嗯,是的,但是您应该关心从后端收到的图像的大小,避免接收更大的图像
  • 如果您遇到内存问题,这就是导致崩溃的原因,请确保您使用的是ListView.builder,在处理大型列表时,它比ListView(children: [...]) 更节省内存. api.flutter.dev/flutter/widgets/ListView/ListView.builder.html
  • 我实际上将 SliverGrid 与 Child builder 的代表一起使用。但不幸的是,这没有帮助。

标签: flutter flutter-layout flutter-dependencies flutter-animation flutter-test


【解决方案1】:

如果您要管理大量图像更好,请将它们下载到本地目录并将 url 像数据库中的名称一样获取,然后您可以在每个请求时询问您的 url 是否在您的数据库中如果不存在目录中的文件,则执行请求并将其文件存储在目录和数据库中的名称中。当您的应用在缓存中管理大量信息(如图像)时,这会更好,因为在某些设备上,应用可能会崩溃甚至重新启动设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    相关资源
    最近更新 更多