title: Is there a way i can use my refresh indicator to refresh a fututre builder after an error snapshot
body: <p>I'm fetching data from Newsapi.org, i need to be able to reload the futurebuilder() after a snapshot error, i'm very new to flutter so this might sound strange.</p>
  <p>I've already been able to fetch my data, and also tried putting the call back into the
  <code>if(snapshot.hasError) {}</code>
  but i just cant't get it to work</p>
  <pre><code>Widget build(BuildContext context) {
  var refreshIndicator = RefreshIndicator(
          key: refreshKey,
          child: FutureBuilder&lt;List&lt;Source&gt;&gt;(
            future: list_sources,
            builder: (context, snapshot) {
              if (snapshot.hasError) {
                return Text(
                    'An error occured, check your internet connection and try again');
              }
              if (snapshot.hasData) {
                if (snapshot.data != null) {
                  List&lt;Source&gt; sources = snapshot.data;
                  return new ListView(
                      children: sources
                          .map((source) =&gt; GestureDetector(
                                onTap: () {
                                  Navigator.push(
                                      context,
                                      MaterialPageRoute(
                                          builder: (context) =&gt;
                                              ArticleScreen(source: source)));
                                },
                                child: Card(
                                  elevation: 1.0,
                                  color: Colors.white,
                                  margin: const EdgeInsets.symmetric(
                                      vertical: 8.0, horizontal: 14.0),
                                  child: Row(
                                    crossAxisAlignment:
                                        CrossAxisAlignment.start,
                                    children: &lt;Widget&gt;[
                                      Container(
                                        margin: const EdgeInsets.symmetric(
                                            vertical: 20.0, horizontal: 4.0),
                                        width: 100.0,
                                        height: 140.0,
                                        child: Image.asset(
                                            &quot;lib/images/newspaper 2.png&quot;),
                                      ),
                                      Expanded(
                                        child: Column(
                                          crossAxisAlignment:
                                              CrossAxisAlignment.start,
                                          children: &lt;Widget&gt;[
                                            Row(
                                              children: &lt;Widget&gt;[
                                                Expanded(
                                                  child: Container(
                                                    margin:
                                                        const EdgeInsets.only(
                                                            top: 20.0,
                                                            bottom: 10.0),
                                                    child: Text(
                                                      '${source.name}',
                                                      style: TextStyle(
                                                          fontSize: 18.0,
                                                          fontWeight:
                                                              FontWeight
                                                                  .bold),
                                                    ),
                                                  ),
                                                ),
                                              ],
                                            ),
                                            Container(
                                              child: Text(
                                                '${source.description}',
                                                style: TextStyle(
                                                    fontSize: 12.0,
                                                    fontWeight:
                                                        FontWeight.bold,
                                                    color: Colors.grey),
                                              ),
                                            ),
                                            Container(
                                              child: Text(
                                                '${source.category}',
                                                style: TextStyle(
                                                    fontSize: 14.0,
                                                    fontWeight:
                                                        FontWeight.bold,
                                                    color: Colors.black),
                                              ),
                                            ),
                                          ],
                                        ),
                                      ),
                                    ],
                                  ),
                                ),
                              ))
                          .toList());
                }
              } else {
                return CircularProgressIndicator();
              }
            },
          ),
          onRefresh: refreshListSource,
        );
  </code></pre>
  <p>I expected slididng from the top on the screen with the error to try to reload the data</p>