Flutter:为啥 Image.network 无法加载图像
Posted
技术标签:
【中文标题】Flutter:为啥 Image.network 无法加载图像【英文标题】:Flutter: why Image.network cannot load imageFlutter:为什么 Image.network 无法加载图像 【发布时间】:2019-06-12 10:52:41 【问题描述】:我在没有网络的情况下启动应用程序。 然后我使网络可用并单击 setState 按钮,图像仍然不可见。 有解决办法吗?
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Column(
children: <Widget>[
Container(
color: Colors.blue,
child: Image.network(
'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3500755592,262843410&fm=26&gp=0.jpg'),
width: 100,
height: 100,
),
RaisedButton(
child: Text('setState'),
onPressed: ()
setState(() );
,
),
],
));
【问题讨论】:
github.com/flutter/flutter/pull/25980 我发现当一个图片加载失败时,这个图片的url会被识别为不可用。再次请求同一图像时将返回 Null。有什么办法可以解决吗? 【参考方案1】:您的Image.network(..)
没有任何变化,因此它不会响应setState()
,您的网址和大小都是不变的。
给它一些改变,比如key
。此外,由于它已经在其缓存中存储了失败的图像,因此您可能还需要刷新缓存。这是一个简单的示例:
Image.network(
"https://picsum.photos/250?image=9",
key: ValueKey(_key)
)
setState(()
imageCache.clear();
_key = DateTime.now().millisecondsSinceEpoch.toString();
);
【讨论】:
以上是关于Flutter:为啥 Image.network 无法加载图像的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - Image.network 失败时的默认图像
在 Flutter 中使用 network_image_mock 包进行图像测试
当 cached_network_image 或 Image.Network 填充数据时,Flutter 应用程序崩溃很多,仅显示与设备的连接丢失而已
使用 loadingBuilder 时 Flutter Image.network 不显示?