在列表视图中使用CachedNetworkImage时,应用程序会崩溃。如果有很多图片,那么应用程序就会结冰并崩溃。是否可以一个接一个地异步加载每个映像?可以给我一个代码示例吗?谢谢。
发布于 2022-03-17 12:04:10
因此,如果您有与我相同的问题,并且有大量的图片列表,那么您可以执行以下操作:
1.启用ListView
分页。因此,在滚动时,不是加载整个ListView
,而是从List
加载10个项目。
2.使用以下参数将图片压缩到所需的大小:memCacheWidth
、memCacheHeight
、maxHeightDiskCache
、maxWidthDiskCache
以下是我的例子:
CachedNetworkImage(
memCacheWidth: 45,
memCacheHeight: 60,
maxHeightDiskCache: 60,
maxWidthDiskCache: 45,
imageUrl: imageUrl,
imageBuilder: (context, imageProvider) => imageBuilderWidget(imageProvider),
placeholder: (context, url) => placeholderWidget(),
errorWidget: (context, url, error) => errorWidget(),
);
添加这些选项后,从仿真程序中删除应用程序并执行flutter clean
发布于 2022-03-17 12:10:24
如果需要缓存图像,请使用选择模拟缓存图像包。这个包裹也解决了同样的问题。如果不工作,请更改图像的宽度,如果可能,添加分页。
发布于 2022-10-18 13:33:38
你可以使用Image.network,它解决了我在IOS上的崩溃问题。
Image.network('https://example.com/image.jpg',
errorBuilder: (context, error, stackTrace) {
print(error); //do something
},
loadingBuilder: (context, Widget child,
ImageChunkEvent loadingProgress) {
if (loadingProgress == null) return child;
return Center(
child: CircularProgressIndicator(
value: loadingProgress.expectedTotalBytes != null
? loadingProgress.cumulativeBytesLoaded /
loadingProgress.expectedTotalBytes
: null,
),
);
},
),
https://stackoverflow.com/questions/71457972
复制相似问题