如果在图像仍在加载时切换页面,则会发生此错误。如果我返回页面,它也不会触发重新加载。 我不明白,是不是要使用loadingBuilder,frameBuilder和errorBuilder来避免这种情况?这样处理/重新加载是否应该自动处理? 我是否以正确的方式使用Image.network?或者我的方法本身是错误的?
我还尝试在Image.network
状态下将Image _image
分配给init
,然后尝试在dispose
方法中关闭/处置/卸载,但是这些方法都不是可用。
Image.network(
widget.url,
fit: BoxFit.contain,
frameBuilder: (
BuildContext context,
Widget image,
int frame,
bool wasSynchronouslyLoaded,
) {
return AnimatedOpacity(
child: image,
opacity: frame == null ? 0 : 1,
duration: const Duration(seconds: 1),
curve: Curves.easeIn,
);
},
loadingBuilder: (
BuildContext context,
Widget image,
ImageChunkEvent loadingProgress,
) {
if (loadingProgress == null) return image;
if (loadingProgress != null &&
loadingProgress.cumulativeBytesLoaded <
loadingProgress.expectedTotalBytes) {
return Center(
child: CircularProgressIndicator(),
);
} else if (loadingProgress.cumulativeBytesLoaded ==
loadingProgress.expectedTotalBytes) {
return image;
}
return image;
},
errorBuilder:
(BuildContext context, Object exception, StackTrace stackTrace) {
return Center(
child: Text(
'${exception.toString()}',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 15,
),
),
);
},
)