Я знаю два обходных пути, первый - initstate "отложен", например:
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var image;
@override
void initState() {
super.initState();
Future.delayed(Duration.zero).then((_) {
//Your code here
});
}
@override
Widget build(BuildContext context) {
return Container();
}
}
Второй способ - использовать didChangeDependencies, например:
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var image;
bool init = true;
@override
void didChangeDependencies() {
if (init) {
init = false;
//your code here
}
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
return Container();
}
}
init boolean - предотвратить didChangeDependecies от запуска одного и того же кода столько раз, сколько он запускается много раз
Надеюсь, это поможет.