Предварительная загрузка локальных графических ресурсов во Flutter

У меня есть простой список активов изображения, и у меня есть один виджет изображения на экране. Я использую кнопку, чтобы переключаться между ними, используя setState ().

const List<String> _photoData = const [
  "assets/generic-cover.jpg",
  "assets/generic-cover2.jpg",
  "assets/generic-cover3.jpg",
  "assets/generic-cover4.jpg",
];

class _MyHomePageState extends State<MyHomePage> {

  int _coverPhoto = 0;

  void _switchCoverPhoto() {
    setState(() {
      _coverPhoto++;
      if (_coverPhoto == _photoData.length) {
         _coverPhoto = 0;
      }
    });
  }

  @override
  Widget build(BuildContext context) {

    return new Scaffold(
      body: new Stack(
        children: <Widget>[
          new Image.asset (
            _photoData[_coverPhoto],
            fit: ImageFit.cover,
            height: 600.0,
          ),
          new Positioned ( // photo toggle button
            child: new IconButton(
              icon: new Icon (Icons.photo),
              onPressed: _switchCoverPhoto,
              color: Colors.white,
            ),
            top: 32.0,
            right: 32.0,
          ),
        ]
      )
    );
  }

Первое изображение отображается нормально. Тем не менее, когда я вызываю _switchCoverPhoto (), перед отображением "assets / generic-cover2.jpg" появляется короткая белая вспышка.

Это приводит к простому вопросу: существует ли простой способ предварительно загрузить следующее изображение (или изображения) в память, чтобы заранее не было вспышки?

Смотрите прикрепленный GIF для свободного приближения.

Ответы на вопрос(1)

Ваш ответ на вопрос