Repository: flutter
Issue: long press is ended abnormally
Labels: framework,f: material design,f: gestures,has reproducible steps,P2,found in release: 2.2,found in release: 2.3,team-design,triaged-design

long press a button and hold it, the long press up is triggered although we do not released.

## Steps to Reproduce

<!-- You must include full steps to reproduce so that we can reproduce the problem. -->

1. just long press a button, no matter TextButton, MaterialButton or FlatButton or else.
2. hold, do not release your mouse or finger.
3. the method updateHighlight in the class InkWell will triggered with a "false" value.

<img width="876" alt="image" src="https://user-images.githubusercontent.com/19642118/119460576-68139500-bd71-11eb-9579-1d4b6b3c2c95.png">

**Expected results:** <!-- what did you want to see? -->
the expected result is before releasing, the state must be "pressing", and must be still in highlight state.

**Actual results:** <!-- what did you see? -->
the long press is ended before releasing.

<details>
  <summary>sample code</summary>

```
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class LongPressedButtonBackground extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _LongPressedButtonBackgroundState();
}

class _LongPressedButtonBackgroundState extends State<LongPressedButtonBackground> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('按钮按住不放时的背景色')),
      body: Container(
        padding: const EdgeInsets.all(20),
        width: double.infinity,
        height: double.infinity,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Container(
              child: _buildTextButton(),
              width: double.infinity,
              padding: const EdgeInsets.symmetric(vertical: 10),
            ),
            Container(
              child: _buildMaterialButton(),
              width: double.infinity,
              padding: const EdgeInsets.symmetric(vertical: 10),
            ),
            Container(
              child: _buildFlatButton(),
              width: double.infinity,
              padding: const EdgeInsets.symmetric(vertical: 10),
            ),
          ],
        ),
      ),
    );
  }

  Widget _buildTextButton() {
    return TextButton(
      child: Text('按住我'),
      style: ButtonStyle(
        padding: MaterialStateProperty.all(const EdgeInsets.symmetric(vertical: 20, horizontal: 100)),
        backgroundColor: MaterialStateProperty.resolveWith((states) {
          print('34------------->' + states.toString());
          if (states.isNotEmpty) {
            return Colors.grey[200];
          }
          return Colors.white;
        }),
        overlayColor: MaterialStateProperty.all(Colors.grey[200]),
        shape: MaterialStateProperty.resolveWith(
          (states) => RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(4))),
        ),
      ),
      onPressed: () {
        print('pressed');
      },
      onLongPress: () {
        print('long pressed');
      },
    );
  }

  Widget _buildMaterialButton() {
    return MaterialButton(
      onPressed: () {
        print('pressed');
      },
      onLongPress: () {
        print('long pressed');
      },
      child: Text('按住我'),
      textColor: Colors.blue,
      color: Colors.white,
      highlightColor: Colors.grey[200],
      elevation: 0,
      highlightElevation: 0,
      padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 100),
    );
  }

  Widget _buildFlatButton() {
    return FlatButton(
      textColor: Colors.blue,
      color: Colors.white,
      splashColor: Colors.transparent,
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(4),
      ),
      child: Text('按住我'),
      onPressed: () {
        print('pressed');
      },
      onLongPress: () {
        print('long pressed');
      },
      onHighlightChanged: (bool pressing) {
        print('157---------->$pressing');
      },
      padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 100),
    );
  }
}

```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->
 flutter doctor -v
```
[✓] Flutter (Channel stable, 2.2.0, on macOS 11.0.1 20B29 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.2.0 at /usr/local/flutter
    • Framework revision b22742018b (10 days ago), 2021-05-14 19:12:57 -0700
    • Engine revision a9d88a4d18
    • Dart version 2.13.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/chinnsii/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • 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 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • 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

[✓] VS Code (version 1.55.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • iPhone 12 Pro Max (mobile) • EE284F6C-1846-4B92-AB06-08955162219E • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 90.0.4430.212

• No issues found!
```

</details>