2011-09-30 15 views
5

Vorrei che il mio MediaController si nascondesse solo quando l'utente tocca solo la metà inferiore dello schermo, perché ho alcuni pulsanti sulla parte superiore che devono essere accessibili con un clic. Cioè, senza il primo clic intercettato da MediaController.Android: che uso ha l'AnchorView di MediaController?

Da quanto ho letto sul sviluppatori doc:

... In particolare, i controlli galleggia sopra la visualizzazione specificato con setAnchorView(). La finestra scompare se rimane inattiva per tre secondi e riappare quando l'utente tocca la vista di ancoraggio.

mio layout anchor_view:

<View android:id="@+id/player_control" 
    android:layout_width="wrap_content" 
    android:layout_height="100dip" 
    android:layout_alignParentBottom="true"> 
</View >  

Eppure, quando il controller è acceso, ogni volta che tocca lo schermo al di fuori del anchor_view, ancora nasconde solo, e non si attiva gli eventi pulsanti.

C'è un modo per impedirlo?

+0

Sto avendo questo problema pure. hai mai trovato la soluzione? –

risposta

4

La vista di ancoraggio viene utilizzata dallo MediaController solo come riferimento per ottenere la posizione in cui deve iniziare a disegnare i controller. I controllori stessi sono disegnati in una nuova finestra che galleggia sopra la finestra a cui sono collegate tutte le visualizzazioni. Quando viene creata un'istanza di MediaController, questa nuova finestra mobile viene creata (utilizzando un'API interna) e un listener di tocco viene associato alla sua vista di decoro, ossia all'intera superficie. Questo è il motivo per cui toccare qualsiasi parte dello schermo comporta la possibilità di nascondere i controller multimediali e questo è il motivo per cui ritengo che non vi sia un modo semplice per personalizzare questo comportamento: potrebbe richiedere l'estensione o il reimplementamento di MediaController.

Problemi correlati