【问题标题】:handle image errors when image doesn't exist in flutter当抖动中不存在图像时处理图像错误
【发布时间】:2020-11-01 23:44:46
【问题描述】:

我正在尝试使用 FadeInImage 加载图像,但是当图像路径不存在时,会加载 AssetImage。但是,NetworkImage 向我抛出错误:HTTP request failed, statusCode: 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,
      );

有什么想法可以处理吗?

【问题讨论】:

    标签: flutter flutter-image


    【解决方案1】:

    尝试使用cahced_network_image。它同时具有占位符和错误小部件选项。 Refer here 用于淡入。

    【讨论】:

    • 我刚试了一下,也失败了404错误,我把它放在try catch中,一直抛出错误:发生异常。 HttpExceptionWithStatus (HttpException: Invalid statusCode: 404
    • 状态码 404 仅表示未找到 URL。请打印 URL(即'$urlapi/api/items/$itemID/images')并检查该 URL 是否可以在浏览器中访问。目标 imageUrl 加载失败时显示 errorWidget 小部件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2022-11-30
    • 2016-07-20
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多