加载图像时缓存的网络图像不显示进度指示器

时间:2021-03-29 14:29:48

标签: flutter dart caching

我正在使用 cachednetworkimage 显示图像,当我单击查看图像时,它首先显示占位符图像,然后加载图像。我不明白为什么它在图像加载时不显示进度指示器。我想在图像加载时显示进度指示器。如果图像不可用,则应显示占位符图像。我在这里做错了什么?

Container(
              height: size.height * 0.35,
              width: double.infinity,
              child:_imageUrl != null
            ? CachedNetworkImage(
                imageUrl: _imageUrl,
                progressIndicatorBuilder: (context, url, downloadProgress) => 
                Center(child:Loading()),
                errorWidget: (context, url, error) => Icon(Icons.error),
              )
            :Image.asset('assets/images/placeholder.png'),
      ),

1 个答案:

答案 0 :(得分:0)

出现这种情况是因为 _imageUrl 的第一个值是 null,所以它永远不会进入 CachedNetworkImage 小部件,而是通过 Image.asset(...) 和然后当该值不再为空时,它会进入 CachedNetworkImage 小部件。

要使此工作正常运行,您必须在呈现 CacheImageNetwork 小部件之前知道 url(非空)。

另一种解决方案是用 CircularProgressIndicator() 替换 Image.asset (...) 来模拟行为。