title: Variable number of tabs in TabController
body: <p>Having trouble creating a TabController where the number of Tabs varies based on input from Firebase (or any datasource). In my state, which utilizes the <code>SingleTickerProviderStateMixin</code> I have the following:</p>
  
  <pre><code>@override void initState() {
    super.initState();
    //... 
    _controller = new TabController(vsync: this, length: tabs.length);
  }
  </code></pre>
  
  <p><code>tabs</code> is a List of objects that I use for the tab bar items and to build the widgets for each of the TabViews. However, I'm seeing odd behavior. The first odd bit is that tapping a tab triggers three events. Correctly registers the right tab index tapped, then oddly registers the original index and finally the original index where indexIsChanging gets set to 0 (presumably because the animation and change to that index has finished. </p>
  
  <p>Also noticing that updating <code>tabs</code> in <code>setState</code> doesn't force the widget to rebuild. Any constructive thoughts?</p>