【问题标题】:How to avoid OOM using images in ListView, GridView builders in Flutter?Flutter中如何避免在ListView、GridView构建器中使用图片的OOM?
【发布时间】:2021-12-10 09:01:36
【问题描述】:

我正在尝试在任何类型的 ListViewGridViewStaggeredGridViewSliverGridSliverListScrollablePositionedList 构建器中延迟加载图像。 我正在使用 Image.network 从网络获取图像。

我还使用ResizeImage 来减少根据设备屏幕尺寸占用的内存。

在调用dispose 时,图像被放入缓存中(这实际上是不需要的)并且永远不会从内存中清除。

Image.memory 实际上的行为方式相同,在调用dispose 时保留对对象的引用而不是删除它们。

这是我的相关@​​987654321@。

我怎样才能只将ListView 中的可见项目保留在内存中?

【问题讨论】:

    标签: flutter dart flutter-listview flutter-gridview


    【解决方案1】:

    你可以使用:

    PaintingBinding.instance!.imageCache!.maximumSizeBytes = 1024 * 1024 * 50; // 50MB
    

    内存中保留的大小上限。

    【讨论】:

      猜你喜欢
      • 2013-02-25
      • 2018-01-10
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 2019-09-02
      相关资源
      最近更新 更多