Have you ever wanted to detect a triple-tap gesture on your widgets?
GestureDetector doesn't support this, but can we create a TripleTapDetector?
Thanks to RawGestureDetector, we can implement a TripleTapDetector.
Here's how it works:
- register a SerialTapGestureRecognizer
- use the onSerialTapDowncallback
- check if three taps have been made
Source Code
Here's the full implementation:
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
class TripleTapDetector extends StatelessWidget {
  const TripleTapDetector({
    super.key,
    required this.child,
    required this.onTripleTap,
  });
  final Widget child;
  final VoidCallback onTripleTap;
  @override
  Widget build(BuildContext context) {
    return RawGestureDetector(
      gestures: {
        SerialTapGestureRecognizer:
            GestureRecognizerFactoryWithHandlers<SerialTapGestureRecognizer>(
          () => SerialTapGestureRecognizer(),
          (SerialTapGestureRecognizer instance) {
            instance.onSerialTapDown = (SerialTapDownDetails details) {
              if (details.count == 3) {
                onTripleTap();
              }
            };
          },
        ),
      },
      child: child,
    );
  }
}
Feel free to reuse it in your projects. 🙂
Happy coding!





