¿Cómo puedo mantener los eventos de ontouch manejados por un widget incluso si las coordenadas de tacto ya no están dentro del widget, en android
Lo siento por la compleja pregunta déjame explicar. He creado un widget personalizado que maneja algunos eventos ontouch. Lo que quiero hacer es cuando comienzo un evento táctil en ese widget personalizado (onDown) Quiero que el widget para seguir manejando estos eventos, incluso si las coordenadas absolutas no están en ese widget.
Tengo un scrollview y encima de eso (dentro del scrollview) un widget que maneja (de izquierda a derecha) se desplaza. Pero si muevo el dedo verticalmente los eventos de ontouch son consumidos y manejados por el scollview. Si hay una forma de forbit scrollview para manejar eventos táctiles, o mejor fuerza el widget personalizado para seguir manejando el touchEvent, si comienzo el ontouchEvent dentro del widget personalizado?
- Diseño con posición dinámica
- "Presione y mantenga presionado" en Android necesita cambiar estados (selector XML personalizado) usando onTouchListener
- Android deja de enviar eventos onTouch
- Saltar ImageView mientras arrastra. Los valores de getX () y getY () saltan
- OnTouch funciona, pero OnClickListener no?
UPDATE Me encontré con que http://groups.google.com/group/android-framework/browse_thread/thread/2cdd4269dfb2772e?pli=1 .
Eso funciona en mi caso si el widget personalizado NO está dentro de una vista de desplazamiento como "ScrollView". Tratando de resolver el "Beeing dentro de un objeto de desplazamiento ¿Cómo no enviar estos en touchevents a los padres? Devolver verdadero no resuelve el problema
- Android principiante: toque eventos en android gridview
- OnTouchevent () vs onTouch ()
- ¿Cómo puedo pasar Touch Listeners a la vista personalizada para arrastrar y soltar?
- Android: OnTouch, MotionEvent.ACTION_MOVE no está reconocido?
- Manejo del evento de toque Intercept sin extender ViewGroup
- Usando OnTouchListener y OnLongClickListener interfiere entre sí
- OnTouchListener para toda la pantalla
- PopupWindow TouchInterceptor no funciona
En el controlador onTouch de su widget (por ejemplo, durante ACTION_MOVE), llame a parent.requestDisallowInterceptTouchEvent (true) . Ese método básicamente le está pidiendo al padre (en su caso el scrollview) ya su ancestro que no intercepte el evento táctil.
Tendrás que implementar una subclase especial de ScrollView, que permite a tu widget decirle que desactive el desplazamiento cuando lo desees (para que no empiece a desplazarse después de suficiente movimiento y tome eventos de tu widget). El ScrollView personalizado puede reemplazar este método:
Cuando no desea que la clase base consuma eventos táctiles para desplazamientos, devuelva false aquí en lugar de llamar a la implementación base.