Возвращаемое значение для precacheImage
равно Future<void>
, поэтому использование then
для результата не вернет само изображение.
Один из самых простых способов его использования - использовать в методе build
родительского виджета виджета, для которого вы хотите показать изображение следующим образом:
class ImagePage extends StatelessWidget{
@override
Widget build(BuildContext context) {
return Image.network("https://upload.wikimedia.org/wikipedia/commons/3/39/Periodic_table_large.png");
}
}
Затем вы можете вызвать precacheImage
в виджете перед тем, как перейти к ImagePage, например:
class TestWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
precacheImage(NetworkImage("https://upload.wikimedia.org/wikipedia/commons/3/39/Periodic_table_large.png"), context);
return Center(
child: RaisedButton(
child: Text('Launch screen'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ImagePage()),
);
},
));
}
}
Таким образом, при нажатии кнопки для запуска ImagePage
изображение уже будет загружено.