2011-09-30 13 views
5

Me gustaría que mi MediaController se oculte solo cuando el usuario toque solo la mitad inferior de la pantalla, porque tengo algunos botones en la parte superior que deben ser accesibles con un solo clic. Es decir, sin el primer clic interceptado por MediaController.Android: ¿Qué uso tiene AnchorView de MediaController?

De lo que he leído en el doc desarrolladores:

... En concreto, los controles flotará por encima de la vista especificada con setAnchorView(). La ventana desaparecerá si se deja inactiva durante tres segundos y vuelve a aparecer cuando el usuario toca la vista de anclaje.

Mi diseño 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á activado, cada vez que toca la pantalla fuera de la anchor_view, todavía sólo oculta, y no se dispara los eventos botones.

¿Hay alguna manera de prevenir eso?

+0

Estoy teniendo este problema también. ¿alguna vez encontraste la solución? –

Respuesta

4

La vista de anclaje la usa el MediaController solo como referencia para obtener la posición donde debería comenzar a dibujar los controladores. Los controladores mismos se dibujan en una nueva ventana flotando sobre la ventana a la que están asociadas todas sus vistas. Cuando se crea una instancia de MediaController, esta nueva ventana flotante se genera (utilizando una API interna) y un oyente táctil se asocia a su vista de decoración, es decir, a toda su superficie. Esta es la razón por la que al tocar cualquier parte de la pantalla se ocultan los controladores de medios, y es por eso que creo que no hay una manera fácil de personalizar este comportamiento: puede requerir extender o volver a implementar MediaController.

Cuestiones relacionadas