title: Flutter: PageController does not keep page despite keepPage: true
body: <p>Steps to reproduce: Swipe to the left, switch to the red <code>Tab</code> and then switch to the purple <code>Tab</code> again.</p>
  
  <p>What is: After executing the steps to reproduce, the <code>PageView</code> of the first <code>Tab</code> is at the blue page again.</p>
  
  <p>What should be: After executing the steps to reproduce, the <code>PageView</code> of the first <code>Tab</code> is still at the green page.</p>
  
  <p>What am I missing here?</p>
  
  <pre><code>import "package:flutter/material.dart";
  import "package:flutter/services.dart";
  
  void main() =&gt; runApp(MyApp());
  
  class MyApp extends StatelessWidget {
    @override
      Widget build(BuildContext context) {
        SystemChrome.setEnabledSystemUIOverlays([]);
        return MaterialApp(
          home: MyHome()
        );
      }
  }
  
  class MyHomeState extends State&lt;MyHome&gt; with TickerProviderStateMixin {
    TabController tabController;
    @override
      void initState() {
        tabController = tabController?? TabController(
          vsync: this,
          length: 2
        );
        super.initState();
      }
    @override
      void dispose() {
        tabController.dispose();
        super.dispose();
      }
    @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Column(
            children: [
              TabBar(
                controller: tabController,
                tabs: [
                  Container(
                    color: Colors.purple,
                    width: 100.0,
                    height: 50.0
                  ),
                  Container(
                    color: Colors.pink,
                    width: 100.0,
                    height: 50.0
                  )
                ]
              ),
              Expanded(
                child: TabBarView(
                  controller: tabController,
                  children: [
                    MyPageView(),
                    MyPageView(),
                  ],
                )
              )
            ]
          )
        );
      }
  }
  class MyHome extends StatefulWidget {
    @override
      State&lt;StatefulWidget&gt; createState() {
        return MyHomeState();
      }
  }
  
  class MyPageViewState extends State&lt;MyPageView&gt; {
    PageController pageController;
    @override
      void initState() {
        pageController = pageController?? PageController();
        super.initState();
      }
      @override
        void dispose() {
          pageController.dispose();
          super.dispose();
        }
    @override
      Widget build(BuildContext context) {
        return PageView(
          controller: pageController,
          children: [
            Container(
              color: Colors.blue
            ),
            Container(
              color: Colors.green
            )
          ]
        );
      }
  }
  class MyPageView extends StatefulWidget {
    @override
      State&lt;StatefulWidget&gt; createState() {
        return MyPageViewState();
      }
  }
  </code></pre>