当颤振中不存在图像时处理图像错误



我试图用FadeInImage加载图像,但当图像路径不存在时,会加载AssetImage。但是,NetworkImage向我抛出错误:HTTP请求失败,状态代码:404

我试着用AdvancedNetworkImage做这件事,它工作得很好,但当图像被另一个图像替换时,AdvancedNetworkImage会继续加载旧图像,我想这是缓存。我已经禁用了与缓存相关的选项,但它继续加载上一个图像。

FadeInImage photoItem = FadeInImage(
image: AdvancedNetworkImage('$urlapi/api/items/$itemID/images', 
fallbackAssetImage: 'assets/images/add_photo.png',
disableMemoryCache: true, 
cacheRule: CacheRule(maxAge: Duration(seconds: 1)),
timeoutDuration: Duration(seconds: 1),
useDiskCache: false, ),
placeholder: AssetImage('assets/images/add_photo.png'),
fadeInDuration: Duration(milliseconds: 150),
fit: BoxFit.contain,
);

有什么想法可以处理吗?

方法很简单,使用现有的替代图像"placeholderErrorBuilder/imageErrorBuilder";并尝试以下代码

Container(
padding: const EdgeInsets.only(left: 4),
child: FadeInImage(
fadeInDuration: const Duration(milliseconds: 1000),
image: CachedNetworkImageProvider(
'$urlapi/api/items/$itemID/images',
errorListener: () {},
),
height: 80,
width: 80,
fit: BoxFit.fill,
imageErrorBuilder: (context, error, stackTrace) =>
SvgPicture.asset(
"assets/images/example.svg",
fit: BoxFit.fill,
height: 70,
//  color: Colors.white,
),
placeholderErrorBuilder: (context, error, stackTrace) =>
SvgPicture.asset(
"assets/images/sliderph.svg",
fit: BoxFit.fill,
height: 70,
//  color: Colors.white,
),
placeholder: AssetImage('assets/images/add_photo.png')),
), 

尝试使用cahced_network_image。它同时具有占位符和错误小部件选项。请参阅此处了解淡入。