Répondre aux changements de visibilité de l'UI

Cette leçon explique comment enregistrer un écouteur afin que votre application puisse être informée des modifications de visibilité de l'UI du système. Cela est utile si vous souhaitez synchroniser d'autres parties de votre interface utilisateur avec le masquage/l'affichage des barres système.

Enregistrer un écouteur

Pour être informé des modifications de visibilité de l'UI du système, enregistrez un View.OnSystemUiVisibilityChangeListener dans votre vue. Il s'agit généralement de la vue que vous utilisez pour contrôler la visibilité de la navigation.

Par exemple, vous pouvez ajouter ce code à la méthode onCreate() de votre activité:

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.
        }
    }
});

Il est généralement recommandé de synchroniser votre interface utilisateur avec les modifications apportées à la visibilité de la barre système. Par exemple, vous pouvez utiliser cet écouteur pour masquer et afficher la barre d'action lors d'un concert avec la barre d'état masquée et affichée.