¿Qué significa el valor booleano devuelto por un método de manejo de eventos en Android
En android, la mayoría de los métodos de escucha de eventos devuelven un valor booleano. ¿Qué significa ese valor verdadero / falso? ¿Qué resultará en los sucesos posteriores?
class MyTouchListener implements OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { logView.showEvent(event); return true; } }
Respecto al ejemplo anterior, si devuelve true en el método onTouch , he encontrado que cada evento táctil (DOWN, UP, MOVE, etc) ha sido capturado de acuerdo a mi logView . Por el contrario, si la devolución es falsa, sólo se captura el evento DOWN. Por lo tanto, parece que devolver false evitará que el evento se propague. Estoy en lo correcto ?
- Android Live Wallpaper Tocar la jerarquía de eventos
- Touchend no disparar después de touchmove en android 4.x?
- Cómo deshabilitar el toque en el área del fragmento
- Detectar la forma del tacto en el iphone o el androide?
- Enlace de evento de toque de Android WebView
Además, en un OnGestureListener , muchos métodos tienen que devolver un valor booleano también. ¿Tienen el mismo significado?
- ¿Cómo crear un imagebutton de forma irregular donde la parte transparente de la imagen no se puede hacer clic?
- ¿Por qué es el evento touchstart después de hacer clic?
- Detectar evento de desplazamiento en el navegador de Android
- Catch onTouch evento por el padre, manejarlo y pasar a los niños
- Manejo de eventos táctiles - onInterceptTouchEvent y onTouchEvent
- Touchend no dispara después de touchmove
- ListView de Android ejecutando un evento en el elemento Liberación de clics largos
- Singletap touch detect en método Ontouch de la vista
Si devuelves true
de un evento ACTION_DOWN
, estás interesado en el resto de los eventos en ese gesto. Un "gesto" en este caso significa todos los eventos hasta el final ACTION_UP
o ACTION_CANCEL
. Devolver false
desde un ACTION_DOWN
significa que no desea que el evento y otras vistas tengan la oportunidad de manejarlo. Si tiene vistas superpuestas, puede ser una vista de hermanos. Si no, se burbujeará hasta el padre.
De la documentación: http://developer.android.com/reference/android/view/View.OnTouchListener.html#onTouch(android.view.View , android.view.MotionEvent)
"Es cierto si el oyente ha consumido el evento, false de lo contrario."
Si devuelve true, se procesa el evento. Si es falso, pasará a la capa siguiente.
El valor booleano determina si el evento se consume o no.
Sí, tienes razón. Si devuelve false, el oyente siguiente maneja el evento. Si devuelve true, el evento es consumido por su oyente y no enviado al siguiente método.
Perdí casi un día en la solución de problemas, aún me enteré, que mi función onTouch se llama 2 veces cuando se utiliza true y 1 veces cuando se utiliza false.
- Acceso string.xml al código java en Android
- ¿Cómo se elimina el texto del título de la Android ActionBar?