simpleongesturelistener - Android “deslizar” vs “lanzar”
gesturedetector simpleongesturelistener (2)
En la sección de diseño de gestos de Android Developers, se utiliza el término "deslizar".
En la sección de desarrolladores , se utiliza el término "fling".
¿Son estos términos sinónimos? Por lo que he encontrado, creo que lo son, pero en ninguna parte se dice explícitamente de un modo u otro.
Dicho esto, si quiero implementar la funcionalidad para un "deslizamiento", ¿debo implementar onFling
en GestureDetector
?
Arrastrar, deslizar o lanzar detalles
Las actividades de gestos de deslizamiento varían según el contexto. La velocidad a la que se realiza un gesto es la distinción principal entre Arrastrar, Deslizar y Fling.
- Arrastrar: gesto fino, más lento, más controlado, generalmente tiene un objetivo en pantalla
- Deslizar: gesto general, más rápido, normalmente no tiene un objetivo en pantalla
- Fling: gesto grueso, sin objetivo en pantalla
La velocidad del gesto afecta si la acción es inmediatamente reversible.
- Un golpe se convierte en un lanzamiento basado en la velocidad final y si el elemento afectado ha cruzado un umbral (o un punto más allá del cual se puede deshacer una acción).
- Un arrastre mantiene el contacto con un elemento, por lo que invertir la dirección del gesto arrastrará el elemento hacia atrás a través del umbral.
- Un lanzamiento se mueve a una velocidad más rápida y elimina el contacto con el elemento mientras cruza el umbral, lo que evita que la acción se deshaga.
de https://www.google.com/design/spec/patterns/gestures.html
onFling()
se ejecutará cuando un usuario realice un movimiento de "lanzamiento", y dicho movimiento tiene una velocidad para determinar el tipo de lanzamiento que fue. Sin embargo, si un usuario simplemente toca el dispositivo y se mueve lentamente a través de la pantalla, eso no se consideraría un lanzamiento, sino un golpe.
Todo se reduce a qué tipo de movimiento espera que realicen los usuarios. El caso ideal sería implementar la función onFling()
para capturar ese movimiento, y también implementar onDrag()
y onDragFinished()
para capturar los movimientos más sutiles que aún se deben considerar como deslizar.