dispose method
override
    Releases any resources used by the object.
This method is called by the owner of this gesture recognizer when the object is no longer needed (e.g. when a gesture recognizer is being unregistered from a GestureDetector, the GestureDetector widget calls this method).
Implementation
@override
void dispose() {
  final List<_TapGesture> localGestures = List<_TapGesture>.of(_gestureMap.values);
  for (final _TapGesture gesture in localGestures) {
    gesture.cancel();
  }
  // Rejection of each gesture should cause it to be removed from our map
  assert(_gestureMap.isEmpty);
  super.dispose();
}