createGestureDetector method

Create a new instance of the T widget that extends from TouchRippleGestureDetactorWidget.

Implementation

@override
createGestureDetector({
  required Widget child,
  TouchRippleRecognizerCallback? onTap,
  TouchRippleRejectableCallback? onRejectableTap,
  TouchRippleRecognizerCountableCallback? onDoubleTap,
  TouchRippleStateCallBack? onDoubleTapStart,
  TouchRippleStateCallBack? onDoubleTapEnd,
  TouchRippleRejectableCallback? onRejectableLongTap,
  TouchRippleRecognizerCountableCallback? onLongTap,
  TouchRippleStateCallBack? onLongTapStart,
  TouchRippleStateCallBack? onLongTapEnd,
  TouchRippleRecognizerCallback? onCancel,
  TouchRippleAcceptedCallback? onAccepted,
  TouchRippleRejectedCallback? onRejected,
  TouchRippleFocusStartStateCallBack? onFocusStart,
  TouchRippleStateCallBack? onFocusEnd,
  Duration? longTappableDuration,
}) {
  Duration? tapPreviewMinDuration = super.tapPreviewMinDuration;

  // If long tap gesture are defined,
  // the tap gesture need to compete with long tap gesture,
  // so it is not possible to show the tap effect in advance to the user.
  if (onLongTap != null) {
    tapPreviewMinDuration = null;
  } else if (tapPreviewMinDuration != null) {
    if (onDoubleTap != null) {
      tapPreviewMinDuration += super.doubleTappableDuration!;
    }
  }

  return TouchRippleGestureDetector(
    behavior: super.hitTestBehavior,
    rejectBehavior: super.rejectBehavior,
    longTapFocusStartEvent: super.longTapFocusStartEvent,
    tapPreviewMinDuration: tapPreviewMinDuration,
    tapableDuration: super.tapableDuration,
    doubleTappableDuration: super.doubleTappableDuration,
    doubleTapHoldDuration: super.doubleTapHoldDuration,
    longTappableDuration: longTappableDuration,
    longTapStartDeleyDuration: super.longTapStartDeleyDuration,
    onTap: onTap,
    onRejectableTap: onRejectableTap,
    onDoubleTap: onDoubleTap,
    onDoubleTapStart: onDoubleTapStart,
    onDoubleTapEnd: onDoubleTapEnd,
    onRejectableLongTap: onRejectableLongTap,
    onLongTap: onLongTap,
    onLongTapStart: onLongTapStart,
    onLongTapEnd: onLongTapEnd,
    onAccepted: onAccepted,
    onRejected: onRejected,
    onFocusStart: onFocusStart,
    onFocusEnd: onFocusEnd,
    child: child,
  );
}