Repository: flutter
Issue: TabView overscrolls unexpectedly when changing indices & the viewport size at the same time
Labels: framework,f: scrolling,a: quality,P2,customer: quake (g3),team-framework,triaged-framework

## Steps to Reproduce

1. Execute `flutter run` on the code sample 
2. Change tabs back and forth.
3. See second tab always bounces.

**Expected results:** <!-- what did you want to see? -->

Smooth transition from one page to another.

**Actual results:** 

The second tab bounces in when the page transition completes. See video below.
It is likely overscrolling, as when the page transition starts, the 'destination' of the scroll position needs to be corrected because the viewport has been made smaller.

<details>
<summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';
 
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
 
void main() {
  runApp(MyApp());
}
 
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}
 
class MyWidget extends StatefulWidget {
  @override
  State<MyWidget> createState() => _MyWidgetState();
}
 
class _MyWidgetState extends State<MyWidget>
    with SingleTickerProviderStateMixin {
  late final TabController _tabController;
  var panelWidth = 500.0;
 
  @override
  void initState() {
    super.initState();
    _tabController = TabController(
      vsync: this,
      length: 2,
      initialIndex: 0,
    );
    _tabController.addListener(() {
      if (_tabController.indexIsChanging) {
        setState(() {
          panelWidth = 500.0 - (100.0 * _tabController.index);
        });
      }
    });
  }
 
  @override
  void dispose() {
    _tabController.dispose();
    super.dispose();
  }
 
  @override
  Widget build(BuildContext context) {
    return SizedBox(
      width: panelWidth,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          TabBar(
            controller: _tabController,
            tabs: const <Widget>[
              Tab(
                icon: Icon(Icons.cloud_outlined),
              ),
              Tab(
                icon: Icon(Icons.beach_access_sharp),
              ),
            ],
          ),
          Expanded(
            child: TabBarView(
              controller: _tabController,
              physics: const NeverScrollableScrollPhysics(),
              children: const <Widget>[
                Center(
                  child: Text("It's cloudy here"),
                ),
                Center(
                  child: Text("It's rainy here"),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
```

</details>

<details>
  <summary>Logs</summary>

```
[✓] Flutter (Channel master, 3.5.0-9.0.pre.28, on macOS 12.6 21G115 darwin-x64, locale en)
    • Flutter version 3.5.0-9.0.pre.28 on channel master at /Users/katelovett/_github/flutter
    • Upstream repository git@github.com:flutter/flutter.git
    • Framework revision a72d707393 (20 hours ago), 2022-10-19 17:57:29 -0500
    • Engine revision 563b8e830c
    • Dart version 2.19.0 (build 2.19.0-317.0.dev)
    • DevTools version 2.18.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc2)
    • Android SDK at /Users/katelovett/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0-rc2
    • Java binary at: /Applications/Android Studio with Blaze Beta.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13E500a
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio with Blaze Beta.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio with Blaze.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.3)
    • IntelliJ at /Applications/IntelliJ UE (stable).app
    • Flutter plugin version 69.0.3
    • Dart plugin version 213.7371

[✓] VS Code (version 1.71.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.6 21G115 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 106.0.5249.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
```

</details>



https://user-images.githubusercontent.com/16964204/197032581-6d88f721-94b0-4f2d-abdb-7e74cd14d25f.mov