我试图用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。它同时具有占位符和错误小部件选项。请参阅此处了解淡入。