Android: ¿Qué uso tiene AnchorView de MediaController?
Quisiera que mi MediaController ocultara solamente cuando el usuario toca solamente la parte media inferior de la pantalla, porque tengo algunos botones en la parte superior que necesitan ser accesibles con un tecleo. Es decir, sin que el primer clic sea interceptado por el MediaController.
De lo que leo en los desarrolladores doc:
- Usando OnTouchListener y OnLongClickListener interfiere entre sí
- Manejo del evento de toque Intercept sin extender ViewGroup
- Android: pasar el evento de gestos a otra vista
- PopupWindow TouchInterceptor no funciona
- ¿Cómo manejar hacer clic en las vistas secundarias y tocar en los ViewGroups de los padres?
… Específicamente, los controles flotarán sobre la vista especificada con setAnchorView (). La ventana desaparecerá si permanece inactiva durante tres segundos y reaparece cuando el usuario toca la vista de anclaje.
Mi diseño de anchor_view:
<View android:id="@+id/player_control" android:layout_width="wrap_content" android:layout_height="100dip" android:layout_alignParentBottom="true"> </View >
Sin embargo, cuando el controlador está encendido, siempre que toco la pantalla fuera de la anchor_view, todavía sólo lo oculta, y no dispara los eventos de botones.
Hay alguna manera de prevenir eso ?
- ¿Cómo manejar eventos de toque en un fragmento?
- Ocultar teclado en android mientras se toca fuera Editar área de texto
- Android dragvable ImageVIew
- No puede manejar simultáneamente los eventos de clic y de toque
- ¿Es OnTouchListener más rápido que OnClickListener?
- Cómo setOnTouchListener () en un ListPreference?
- SwipeListView sólo un elemento abierto a la vez
- Problema en OnTouchListener para ImageView
La vista de ancla es utilizada por el MediaController
sólo como una referencia para obtener la posición donde debería comenzar a dibujar los controladores. Los propios controladores se dibujan en una ventana nueva flotando sobre la ventana a la que están conectadas todas sus vistas. Cuando se crea una instancia de MediaController
se crea esta nueva ventana flotante (utilizando una API interna) y un oyente táctil está asociado a su vista de decoración, es decir, a toda su superficie. Esta es la razón por la cual tocar cualquier parte de la pantalla resulta en ocultar los controladores de medios y es por eso que creo que no hay una manera fácil de personalizar este comportamiento: puede requerir que amplíe o vuelva a MediaController
.