Questa lezione descrive come registrare un listener per consentire alla tua app di ricevere notifiche delle modifiche alla visibilità dell'interfaccia utente di sistema. Questa opzione è utile se vuoi sincronizzare altre parti della UI con l'occultamento/la visualizzazione delle barre di sistema.
Registra un listener
Per ricevere notifiche sulle modifiche alla visibilità dell'interfaccia utente di sistema, registra un
View.OnSystemUiVisibilityChangeListener
alla tua visualizzazione.
In genere si tratta della visualizzazione che utilizzi per controllare la visibilità della navigazione.
Ad esempio, potresti aggiungere questo codice alla dashboard
Metodo onCreate()
:
Kotlin
window.decorView.setOnSystemUiVisibilityChangeListener { visibility -> // Note that system bars will only be "visible" if none of the // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set. if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) { // TODO: The system bars are visible. Make any desired // adjustments to your UI, such as showing the action bar or // other navigational controls. } else { // TODO: The system bars are NOT visible. Make any desired // adjustments to your UI, such as hiding the action bar or // other navigational controls. } }
Java
View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { // Note that system bars will only be "visible" if none of the // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set. if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) { // TODO: The system bars are visible. Make any desired // adjustments to your UI, such as showing the action bar or // other navigational controls. } else { // TODO: The system bars are NOT visible. Make any desired // adjustments to your UI, such as hiding the action bar or // other navigational controls. } } });
In genere è buona norma mantenere sincronizzata la UI con le modifiche nella barra di sistema. visibilità. Ad esempio, puoi utilizzare questo listener per nascondere e mostrare la barra delle azioni in un concerto con la barra di stato nascosta e visibile.