Repository: flutter
Issue: Odd animation when scrolling in TextFormField when it is in TabView and  PageStorageKey
Labels: framework,a: animation,f: material design,f: scrolling,has reproducible steps,P2,found in release: 3.3,found in release: 3.6,team-design,triaged-design

## Description

Wrap a series of `TextFormField` objects inside of a `ListView` where the `ListView` has a `PageStorageKey`.  The `TabView` may not actually be required to repro, but having it helped narrow the problem to the presence of the `PageStorageKey`.

In both tabs, the tab loses the scroll state.  But only Tab 1 that has the `PageStorageKey` has the issue.  As you can see in the below recording, as the user continues the scroll process, the text starts oddly animating in from the left.

A screen record of the issue can be found here:
https://github.com/jpeiffer/pagestoragekey/blob/master/PageStorageKey.mp4?raw=true

## Repro Code

```dart
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage();

  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: Text('PageStorageKey'),
          bottom: TabBar(
            tabs: <Widget>[
              Tab(
                child: Text('PageScrollKey'),
              ),
              Tab(
                child: Text('No PageScrollKey'),
              ),
            ],
          ),
        ),
        body: TabBarView(
          children: <Widget>[
            ListView.builder(
              key: PageStorageKey('1'),
              itemCount: 1000,
              itemBuilder: (BuildContext context, int index) {
                return ListTile(
                  title: TextFormField(
                    initialValue: '1: Initial text $index',
                  ),
                );
              },
            ),
            ListView.builder(
              itemCount: 1000,
              itemBuilder: (BuildContext context, int index) {
                return ListTile(
                  title: TextFormField(
                    initialValue: '2: Initial text $index',
                  ),
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}

```

## Work Around

I found adding a `PageStorageKey` to each `TextFormField` and giving it a unique id solved the animation and the doesn't-save-scroll-position problem.  That feels like a very non-obvious solution though and doesn't seem like it was intended to be "the right way" to solve this.


## Flutter Doctor

```
[✓] Flutter (Channel beta, v1.6.3, on Mac OS X 10.14.5 18F132, locale en-US)
    • Flutter version 1.6.3 at /Users/jpeiffer/flutter
    • Framework revision bc7bc94083 (3 weeks ago), 2019-05-23 10:29:07 -0700
    • Engine revision 8dc3a4cde2
    • Dart version 2.3.2 (build 2.3.2-dev.0.0 e3edfd36b2)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/jpeiffer/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/jpeiffer/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • ios-deploy 1.9.4
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 35.3.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] VS Code (version 1.35.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.0.2

[✓] Connected device (2 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)
    • macOS                     • macOS         • darwin-x64  • Mac OS X 10.14.5 18F132

• No issues found!
```