Repository: flutter
Issue: GestureDetector.onScale gesture conflicts with PageView vertical drag gesture
Labels: framework,f: gestures,has reproducible steps,P3,team-framework,triaged-framework,found in release: 3.19,found in release: 3.21

Expected behavior:
When I swipe images in PageView, they should not be closed like I use vertical gesture.

Actual behavior:
When I slide images with high velocity from the left or right side of the screen, its being closed

Please note: it's often occurred when you swipe it with really HIGH velocity. It works well if you swipe it slow.

Code example:
```
import 'package:flutter/material.dart';

class Media {
  Media({this.url});

  factory Media.fromUrl(String url) {
    return Media(url: url);
  }

  final String url;
}

List<Media> mediaList = [
  Media.fromUrl('https://disco.scrolller.com/media/21551f.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/23d95b.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/2392c2.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/249d85.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/20a361.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/21551f.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/23d95b.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/2392c2.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/249d85.jpg'),
  Media.fromUrl('https://disco.scrolller.com/media/20a361.jpg'),
];

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  const Home({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GridView.builder(
      itemCount: mediaList.length,
      gridDelegate:
          SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 1 / 1),
      itemBuilder: (_, index) {
        final media = mediaList[index];
        return GestureDetector(
          behavior: HitTestBehavior.translucent,
          onTap: () {
            final pageRoute = MaterialPageRoute(builder: (context) => ImageItem(index: index));
            Navigator.of(context).push(pageRoute);
          },
          child: Image.network(media.url),
        );
      },
    );
  }
}

class ImageItem extends StatefulWidget {
  ImageItem({this.index});

  final int index;

  @override
  _ImageItemState createState() => _ImageItemState();
}

class _ImageItemState extends State<ImageItem> {
  PageController pageController;

  @override
  void dispose() {
    pageController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    pageController = PageController(initialPage: widget.index);

    return WillPopScope(
      onWillPop: () async {
        return true;
      },
      child: PageView.builder(
        itemBuilder: (context, i) {
          return GestureDetector(
            behavior: HitTestBehavior.translucent,
            onScaleStart: (details) {
              print("onScaleStart");
            },
            onScaleUpdate: (details) {
              print("onScaleUpdate");
            },
            onScaleEnd: (details) {
              print("onScaleEnd");
              Navigator.pop(context);
            },
            child: Image.network(mediaList[i].url),
          );
        },
      ),
    );
  }
}
```

flutter doctor -v:
```
[✓] Flutter (Channel beta, 1.23.0-18.1.pre, on Mac OS X 10.15.6 19G2021 x86_64, locale ru-RU)
    • Flutter version 1.23.0-18.1.pre at /Users/nastya/Work/iOS/flutter
    • Framework revision 198df796aa (8 дней назад), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)


[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/nastya/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.10.0.rc.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.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 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.50.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.15.0

[✓] Connected device (4 available)
    • 11 (mobile)       • 00008030-0016244A0C22802E            • ios            • iOS 14.0.1
    • iPhone X (mobile) • 42F80A2E-5BE6-4165-826D-BB10D0CB9072 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • Web Server (web)  • web-server                           • web-javascript • Flutter Tools
    • Chrome (web)      • chrome                               • web-javascript • Google Chrome 86.0.4240.111

• No issues found!
```