flutter – list is not loaded the first time it is run

My ListView does not load data the first time it is run, but when I hot reload or change the orientation of the screen, the list is created.

import & # 39; dart: async & # 39 ;;
import & # 39; dart: convert & # 39 ;;
import & # 39; package: flutter / material.dart & # 39 ;;
import & # 39; package: http / http.dart & # 39; as http;

Future fetchPostFuture () async {
final answer = wait for http.get (& # 39; https: //pokeapi.co/api/v2/pokemon');
return Post.fromJson (json.decode (response.body));
}

Class result {
final string name;
last string url;

Result ({this.name, this.url});

factory Result.fromJson (Map json) {
Return result (Name: json (& # 39; Name & # 39;), URL: json (& # 39; URL & # 39;));
}
}

Class Post {
int count;
String next;
String before;
List listResult;

Post ({this.count, this.next, this.previous, this.listResult});

Factory Post.fromJson (Map json) {
Post back (
count: json (& # 39; count & # 39;),
next: json (& # 39; next & # 39;),
previous: json (& # 39; previous & # 39;),
list result:
(json (& # 39; results & # 39;) as List) .map ((f) => Result.fromJson (f)). toList ());
}
}

MyAppHttp class extends StatefulWidget {
MyAppHttp ({key key}): super (key: key);

@Override
_MyAppHttpState createState () => _MyAppHttpState ();
}

Class _MyAppHttpState extends State {
Future futurePost;
Post postDataAsync;

ProjectWidget () {widget
return FutureBuilder (
future: fetchPostFuture (), // futurePost,
Builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.separated (
padding: const EdgeInsets.all (8),
itemCount: snapshot.data.listResult.length,
itemBuilder: (BuildContext context, int index) {
return ListTile (
on tap: () {
to press(
snapshot.data.listResult (index) .name.toUpperCase ());
},
Title: Container (
Height: 50.
Child: Row (
Children: (
Upholstery(
padding: EdgeInsets.fromLTRB (10, 0, 0, 0),
)
FittedBox (
fit: BoxFit.contain,
// Otherwise, the logo is tiny
Child: Image.asset ("imagens / pokebola.png",
fit: BoxFit.cover),
)
Upholstery(
padding: EdgeInsets.fromLTRB (10, 0, 0, 0),
)
Text(
& # 39; $ {snapshot.data.listResult (index) .name.toUpperCase ()} & # 39;)
)
)));
},
separatorBuilder: (BuildContext context, int index) =>
const divider (),
);
} else if (snapshot.hasError) {
return text ("$ {snapshot.error}");
} else {
// A loading spinner is displayed by default.
return CircularProgressIndicator ();
}
},
);
}

@Override
Widget creation (BuildContext context) {
print ("setState executado");
Return scaffolding (
AppBar: AppBar (
Title: Text (& # 39; Project List & # 39;),
)
body: projectWidget (),
);
}
}