Флаттер: почему Image.network не может загрузить изображение

Я запускаю приложение без сети. Затем я делаю сеть доступной и нажимаю кнопку 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(() {});
              },
            ),
          ],
        ));
  }

0 ответов

В твоем нечего менять Image.network(..) так что он не будет отвечать на setState(), ваш URL и размеры постоянны.

Дайте ему что-нибудь изменить, как key. Кроме того, поскольку он уже сохранил неудачное изображение в своем кеше, вам, вероятно, также потребуется обновить кеш. Вот простой пример:

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

setState(() {
  imageCache.clear();
  _key = DateTime.now().millisecondsSinceEpoch.toString();
});
Другие вопросы по тегам