我正在使用 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'),
),
答案 0 :(得分:0)
出现这种情况是因为 _imageUrl 的第一个值是 null,所以它永远不会进入 CachedNetworkImage 小部件,而是通过 Image.asset(...) 和然后当该值不再为空时,它会进入 CachedNetworkImage 小部件。
要使此工作正常运行,您必须在呈现 CacheImageNetwork 小部件之前知道 url(非空)。
另一种解决方案是用 CircularProgressIndicator() 替换 Image.asset (...) 来模拟行为。