title: StreamBuilder is not reading data from Stream as expected
body: <p>I am trying to use a StreamBuilder to read some data from a Stream, but snapshot.data is only returning the last item from the Stream. In this case, I am only getting 'f'. I want to get 'a', 'b', 'c', 'd', 'e', 'f'. What am I doing wrong?</p>
  
  <pre><code>class ProgressWidget extends StatefulWidget {
    //ProgressWidget({this.stream}) : super();
    //final Stream&lt;String&gt; stream;
  
    @override
    _ProgressWidgetState createState() =&gt; _ProgressWidgetState();
  }
  
  class _ProgressWidgetState extends State&lt;ProgressWidget&gt; {
    int _progressCount = 0;
  
    @override
    void initState() {
      super.initState();
    }
  
    @override
    Widget build(BuildContext context) {
      return StreamBuilder(
          stream: Stream.fromIterable(['a', 'b', 'c', 'd', 'e', 'f']),  // test stream
          builder: (BuildContext context, AsyncSnapshot&lt;String&gt; snapshot) {
            _progressCount++;
            if (snapshot.hasData) {
              print(snapshot.data);
            }
            return snapshot.hasData
                ? new Text('Progress $_progressCount ' + snapshot.data)
                : new Text('Loading ... ');
          });
    }
  }
  </code></pre>