Repository: flutter
Issue: Use GestureDetector and CustomScrollView together
Labels: framework,f: scrolling,f: gestures,has reproducible steps,P3,team-framework,triaged-framework,found in release: 3.19,found in release: 3.20

Hello,
I try use customScrollView for  pull-to-refresh，see code
   ```
CustomScrollView(
        shrinkWrap: widget.shrinkWrap,
        physics:  RefreshScrollPhysics(),
        slivers: <Widget>[
          CupertinoSliverRefreshControl(
              builder: _buildSimpleRefreshIndicator,
              onRefresh: () => Future(() => widget.loadNew())),
          SliverSafeArea(sliver: SliverList(
                  delegate: SliverChildBuilderDelegate((context, index) {
                            return _buildProgressIndicator();
                        },
                          childCount: widget.itemCount)
                      ))
        ],
        controller: _scrollController,
      )
```
But it drop down to a certain distance will refresh，What I want is to loosen my fingers and refresh。 And the refreshIndicatorMode has only five states，There is no one state indicating that the finger is off the screen。So finally，I use gestureDetector and customScrollView together to get the state of the finger。
```
GestureDetector(
      child: CustomScrollView(...),
      onVerticalDragDown: (_) {
        print("show onVerticalDragDown");
      },
      onVerticalDragStart: (_) {
        print("show onVerticalDragStart");
      },
      onVerticalDragUpdate: (_) {
        print("show onVerticalDragUpdate");
      },
      onVerticalDragEnd: (_) {
        print("show onVerticalDragEnd");
      },
      onVerticalDragCancel: () {
        print("show onVerticalDragCancel");
      },
    )
```
But there seems to be a sliding conflict，it‘s only print 'show onVerticalDragDown' and then print 'show onVerticalDragCancel'。So how to solve these problems when can't use it to set physics is NeverScrollableScrollPhysics。

flutter doctor -v
 ```
[✓] Flutter (Channel dev, v0.10.1, on Mac OS X 10.14 18A391, locale en-CN)
    • Flutter version 0.10.1 at /Users/dpuntu/flutter
    • Framework revision 6a3ff018b1 (3 weeks ago), 2018-10-18 18:38:26 -0400
    • Engine revision 3860a43379
    • Dart version 2.1.0-dev.7.1.flutter-b99bcfd309

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/dpuntu/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/dpuntu/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-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[!] IntelliJ IDEA Community Edition (version 2017.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.io/intellij-setup/#installing-the-plugins

[✓] VS Code (version 1.28.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.19.0

[✓] Connected device (1 available)
    • iPhone 8 Plus • 071BB9E4-2116-4867-B1FF-7BE5B6363459 • ios • iOS 12.1 (simulator)

! Doctor found issues in 1 category.
```