【问题标题】:Flutter: why Image.network cannot load imageFlutter:为什么 Image.network 无法加载图像
【发布时间】:2023-03-16 05:35:01
【问题描述】:

我在没有网络的情况下启动应用程序。 然后我使网络可用并单击 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(() {});
              },
            ),
          ],
        ));
  }

【问题讨论】:

  • 我发现当一个图片加载失败时,这个图片的url会被识别为不可用。再次请求同一图像时将返回 Null。有什么办法可以解决吗?

标签: flutter flutter-image


【解决方案1】:

您的Image.network(..) 没有任何变化,因此它不会响应setState(),您的网址和大小都是不变的。

给它一些改变,比如key。此外,由于它已经在其缓存中存储了失败的图像,因此您可能还需要刷新缓存。这是一个简单的示例:

Image.network(
  "https://picsum.photos/250?image=9",
  key: ValueKey(_key)
)

setState(() {
  imageCache.clear();
  _key = DateTime.now().millisecondsSinceEpoch.toString();
});

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 1970-01-01
    • 2021-03-09
    • 2021-01-17
    • 2021-12-17
    • 2022-01-20
    • 1970-01-01
    • 2018-11-18
    • 2018-09-21
    相关资源
    最近更新 更多