Reload data when using FutureBuilder

2167 views flutter

I am loading data when widget is loading like the code below. Once the UI is fully loaded, I like to add one refresh button to reload the data again.

How can I refresh the view ?

  class _MyHomePageState extends State<MyHomePage> {

      Widget build(BuildContext context) {
        var futureBuilder = new FutureBuilder(
          future: _getData(),
          builder: (BuildContext context, AsyncSnapshot snapshot) {
            switch (snapshot.connectionState) {
              case ConnectionState.none:
              case ConnectionState.waiting:
                return new Text('loading...');
                if (snapshot.hasError)
                  return new Text('Error: ${snapshot.error}');
                  return createListView(context, snapshot);

        return new Scaffold(
          appBar: new AppBar(
            title: new Text("Home Page"),
          body: futureBuilder,

      Future<List<String>> _getData() async {
        var values = new List<String>();

        await new Future.delayed(new Duration(seconds: 5));

        return values;

      Widget createListView(BuildContext context, AsyncSnapshot snapshot) {


answered question

I don't understand - why don't you add this button in createListView method?

1 Answer


Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
  RaisedButton button = RaisedButton(onPressed: () {
    setState(() {});
  }, child: Text('Refresh'),);
  //.. here create widget with snapshot data and with necessary button

posted this

Have an answer?


Please login first before posting an answer.