Detectar gestos de deslizamiento (swipe gestures) es esencial para crear experiencias móviles fluidas e intuitivas. En Flutter, existen varias formas de capturar estos gestos, pero una de las más rápidas y sencillas es mediante el paquete Swipe Detector. En esta guía aprenderás todo lo necesario para utilizarlo de forma profesional, optimizar su rendimiento y compararlo con alternativas nativas como GestureDetector.
Partimos de que anteriormente vimos como usar el FractionallySizedBox para crear contenedores con flexibles con tamaños porcentuales.
✅ ¿Qué es Swipe Detector en Flutter?
Solo para detectar los deslizamientos en la pantalla, como izquierda, derecha, arriba y abajo, y muy simple en un aleteo cuando agregamos el paquete swipedetector.
Swipe Detector es un paquete para Flutter diseñado específicamente para detectar swipes en cuatro direcciones:
- Swipe hacia la derecha
- Swipe hacia la izquierda
- Swipe hacia arriba
- Swipe hacia abajo
Su principal ventaja es que simplifica la detección de gestos eliminando la necesidad de manejar cálculos de desplazamiento, velocidad o eventos de arrastre. Solo envuelves un widget y asignas las acciones deseadas.
Es especialmente útil para:
- Navegación por gestos
- Galerías de imágenes
- Carruseles
- Panales laterales
- Juegos en Flutter
Gestos rápidos sin animaciones complejas
Implementación del detector de deslizamiento
Paso 1: agregar dependencias
Agregue el paquete en el archivo pubspec.yaml.
dependencies: swipedetector: #https://pub.dev/packages/swipedetectorPaso 2, importar
import 'package:swipedetector/swipedetector.dart';
SwipeDetector(
child: Container(
width: 200,
height: 200,
color: Colors.blue,
),
onSwipeRight: () {
setState(() {
print("Swiped right");
});
},
),Simplemente declareSwipeDetector en el cuerpo o como un widget. Eso es todo, podemos usar onSwipeRight o onSwipeLeft o onSwipeUp o onSwipeDown o todo al mismo tiempo para detectar el deslizamiento que desea
SwipeDetector(
child: Container(
width: 200,
height: 200,
color: Colors.blue,
child: Center(child: Text(_swipeDirection)),
),
onSwipeUp: () {
setState(() {
_swipeDirection = "Swipe Up";
});
},
onSwipeDown: () {
setState(() {
_swipeDirection = "Swipe Down";
});
},
onSwipeLeft: () {
setState(() {
_swipeDirection = "Swipe Left";
});
},
onSwipeRight: () {
setState(() {
_swipeDirection = "Swipe Right";
});
},
),Tan sencillo :)También puede configurar, suponga que no necesita una pantalla completa como solo una parte de la pantalla también detectada usando
swipeConfiguration: SwipeConfiguration(
verticalSwipeMinVelocity: 100.0,
verticalSwipeMinDisplacement: 50.0,
verticalSwipeMaxWidthThreshold:100.0,
horizontalSwipeMaxHeightThreshold: 50.0,
horizontalSwipeMinDisplacement:50.0,
horizontalSwipeMinVelocity: 200.0),
),Solo debes envolver cualquier widget con SwipeDetector y asignar los callbacks disponibles:
- onSwipeLeft
- onSwipeRight
- onSwipeUp
- onSwipeDown
Ejemplo completo: Detectar todos los tipos (direcciones) de Swipe en Flutter
Este código muestra en pantalla el tipo de swipe detectado, ideal para debugging o pruebas.
String _swipeDirection = "";
SwipeDetector(
child: Container(
width: 200,
height: 200,
color: Colors.blue,
child: Center(child: Text(_swipeDirection)),
),
onSwipeUp: () {
setState(() => _swipeDirection = "Swipe Up");
},
onSwipeDown: () {
setState(() => _swipeDirection = "Swipe Down");
},
onSwipeLeft: () {
setState(() => _swipeDirection = "Swipe Left");
},
onSwipeRight: () {
setState(() => _swipeDirection = "Swipe Right");
},
);Este ejemplo está optimizado para SEO usando los términos:
detect swipe Flutter, Flutter swipe gestures, Flutter swipedetector example.⚙️ Configurar la sensibilidad del Swipe (SwipeConfiguration)
Una de las características avanzadas del paquete es la personalización de la sensibilidad del gesto.
swipeConfiguration: SwipeConfiguration(
verticalSwipeMinVelocity: 100.0,
verticalSwipeMinDisplacement: 50.0,
verticalSwipeMaxWidthThreshold: 100.0,
horizontalSwipeMaxHeightThreshold: 50.0,
horizontalSwipeMinDisplacement: 50.0,
horizontalSwipeMinVelocity: 200.0,
),¿Para qué sirve cada parámetro?
- Parámetro Función
- verticalSwipeMinVelocity Velocidad mínima para validar swipe vertical
- verticalSwipeMinDisplacement Distancia mínima para confirmar el gesto
- verticalSwipeMaxWidthThreshold Ancho máximo donde el evento vertical será detectado
- horizontalSwipeMinVelocity Velocidad mínima para swipe horizontal
- horizontalSwipeMinDisplacement Desplazamiento horizontal mínimo necesario
Esto permite:
- Detectar swipes solo en zonas específicas
- Evitar falsos positivos
- Configurar áreas táctiles personalizadas
Swipe Detector vs GestureDetector (Comparativa SEO)
Google suele posicionar comparativas, así que incluimos una tabla optimizada:
Característica Swipe Detector GestureDetector
Facilidad de uso ⭐⭐⭐⭐⭐ ⭐⭐⭐
Soporte nativo de Flutter ❌ ✔
Personalización Media Alta
Complejidad Baja Media/Alta
Ideal para Prototipos, apps simples Apps avanzadas, animaciones
Detección automática de swipes ✔ ❌ (hay que programarlo)
Alternativa sin paquetes: Detectar swipes con GestureDetector
Para un control total sin dependencias externas:
GestureDetector(
onHorizontalDragEnd: (details) {
if (details.primaryVelocity! > 0) {
print("Swipe Right");
} else {
print("Swipe Left");
}
},
child: Container(
width: 200,
height: 200,
color: Colors.orange,
),
);Esta sección ayuda a captar keywords secundarias como Flutter horizontal drag, Flutter detect swipe without package.
❓ Preguntas frecuentes (SEO-Focused FAQ)
- ¿Swipe Detector es mejor que GestureDetector en Flutter?
- Para casos simples sí. Para interacciones avanzadas, animaciones complejas o gestos superpuestos, GestureDetector es superior.
- ¿Puedo detectar swipes dentro de un área específica?
- Sí. Usa swipeConfiguration para limitar la zona activa.
- ¿Funciona Swipe Detector en Flutter Web?
- Sí, pero la sensibilidad varía según el dispositivo. Para web se recomienda GestureDetector.
- ¿Swipe Detector funciona en iOS y Android?
- Funciona perfectamente en ambas plataformas.
- ¿Cuál es la mejor forma de detectar swipe en Flutter sin paquete?
- Usar onHorizontalDragEnd, onVerticalDragEnd o GestureRecognizer.
Conclusión: ¿Vale la pena usar Swipe Detector Flutter?
Sí, si buscas una solución inmediata, simple y funcional para detectar swipes en tu app Flutter. Su velocidad de implementación y facilidad lo convierten en una herramienta ideal para:
- Prototipos
- Apps educativas
- Interfaces simples basadas en gestos
- Widgets con interacción básica
- Para proyectos avanzados, siempre podrás dar el salto a GestureDetector o RawGestureDetector.
Siguiente widget, aprende a hacer un contenedor scrollable en Flutter.
Acepto recibir anuncios de interes sobre este Blog.
Vamos a conocer un paquete con el cual podemos registrar el efecto Swipe en nuestras aplicaciones en Flutter.