studio simpleongesturelistener recognition android swipe gestures onfling

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.