Repository: flutter
Issue: [Proposal] PageView should support `addAutomaticKeepAlives` parameter to persist state
Labels: c: new feature,framework,f: material design,f: scrolling,c: proposal,has reproducible steps,P3,found in release: 3.3,found in release: 3.7,team-design,triaged-design

<!-- Thank you for using Flutter!

     If you are looking for support, please check out our documentation
     or consider asking a question on Stack Overflow:
      * https://flutter.io/
      * https://docs.flutter.io/
      * https://stackoverflow.com/questions/tagged/flutter?sort=frequent

     If you have found a bug or if our documentation doesn't have an answer
     to what you're looking for, then fill our the template below. Please read
     our guide to filing a bug first:  https://flutter.io/bug-reports/
-->

## Steps to Reproduce

<!--
     Please tell us exactly how to reproduce the problem you are running into.

     Please attach a small application (ideally just one main.dart file) that
     reproduces the problem. You could use https://gist.github.com/ for this.

     If the problem is with your application's rendering, then please attach
     a screenshot and explain what the problem is.
-->

1. Create a widget containing a `PageView`
2. Add multiple children to the `PageView`
3. Add breakpoints to each build function of the children
4. Scroll between pages and watch the breakpoints being hit each time (even after already going there)

## Logs

<!--
      Run your application with `flutter run --verbose` and attach all the
      log output below between the lines with the backticks. If there is an
      exception, please see if the error message includes enough information
      to explain how to solve the issue.
-->

No logs provided as this is pretty self explanatory.
It is causing a lot of issues with state management solutions like `flutter_redux` as children with a `StoreBuilder`/`Connector` will always be rebuilt, even if the `Store` has not changed. Both `ListView` and `GridView` have this field `addAutomaticKeepAlives`, so it seems weird that `PageView` does not.

<!--
     Run `flutter analyze` and attach any output of that command below.
     If there are any analysis errors, try resolving them before filing this issue.
-->

```
info - Unused import: 'package:alchemy/redux/actions/loading/update_state_loading_action.dart' - lib\components\edit_profile\edit_profile_view_model.dart:2:8 - unused_import
   info - Unused import: 'package:firebase_storage/firebase_storage.dart' - lib\components\images\upload_image_view_model.dart:9:8 - unused_import
   info - Unused import: 'package:path/path.dart' - lib\components\images\upload_image_view_model.dart:10:8 - unused_import
   info - Unused import: 'package:random_string/random_string.dart' - lib\components\images\upload_image_view_model.dart:12:8 - unused_import
```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
[√] Flutter (Channel beta, v0.11.9, on Microsoft Windows [Version 10.0.17134.407], locale en-GB)
    • Flutter version 0.11.9 at C:\Users\ryand\Documents\flutter
    • Framework revision d48e6e433c (3 days ago), 2018-11-20 22:05:23 -0500
    • Engine revision 5c8147450d
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.2)
    • Android SDK at C:\Users\ryand\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.2
    • Java binary at: D:\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[√] Android Studio (version 3.2)
    • Android Studio at D:\Android Studio
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[√] IntelliJ IDEA Community Edition (version 2018.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.5
    • Flutter plugin version 29.1.3
    • Dart plugin version 182.4892.25

[√] VS Code (version 1.29.1)
    • VS Code at C:\Users\ryand\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 2.20.0

[√] VS Code, 64-bit edition (version 1.27.2)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 2.20.0

[!] Connected device
    ! No devices available
```