如何避免 OOM 在 ListView 中使用图像,在 Flutter 中使用 GridView 构建器?
How to avoid OOM using images in ListView, GridView builders in Flutter?
我正在尝试延迟加载任何类型的图像 ListView
、GridView
、StaggeredGridView
、SliverGrid
、SliverList
、[=15= 】 建设者。
我正在使用 Image.network
.
从网络获取图像
我也在使用 ResizeImage
来减少根据设备屏幕尺寸占用的内存。
图像被放入缓存(这实际上是不需要的)并且在调用 dispose
时从不从内存中清除。
Image.memory
实际上的行为方式相同,在调用 dispose
.
时保留对对象的引用而不删除它们
这是我的相关 github issue。
如何才能只在内存中保留 ListView
中的可见项?
您可以使用:
PaintingBinding.instance!.imageCache!.maximumSizeBytes = 1024 * 1024 * 50; // 50MB
内存中保留的大小上限。
我正在尝试延迟加载任何类型的图像 ListView
、GridView
、StaggeredGridView
、SliverGrid
、SliverList
、[=15= 】 建设者。
我正在使用 Image.network
.
我也在使用 ResizeImage
来减少根据设备屏幕尺寸占用的内存。
图像被放入缓存(这实际上是不需要的)并且在调用 dispose
时从不从内存中清除。
Image.memory
实际上的行为方式相同,在调用 dispose
.
这是我的相关 github issue。
如何才能只在内存中保留 ListView
中的可见项?
您可以使用:
PaintingBinding.instance!.imageCache!.maximumSizeBytes = 1024 * 1024 * 50; // 50MB
内存中保留的大小上限。