תגובה לשינויים בהרשאות הגישה בממשק המשתמש

בשיעור הזה נסביר איך לרשום מאזינים כדי שהאפליקציה תוכל לקבל התראה שינויים בהרשאות הגישה לממשק המשתמש של המערכת. זה שימושי אם רוצים לסנכרן חלקים אחרים של ממשק המשתמש עם ההסתרה/הצגה של סרגלי המערכת.

רישום האזנה

כדי לקבל התראה על שינויים בהרשאות הגישה לממשק המשתמש של המערכת, צריך לרשום View.OnSystemUiVisibilityChangeListener לתצוגה שלך. בדרך כלל זו התצוגה שמשמשת אתכם כדי לשלוט בחשיפה של הניווט.

לדוגמה, אפשר להוסיף את הקוד הזה לפעילות אמצעי תשלום אחד (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.
        }
    }
});

בדרך כלל מומלץ לשמור על סנכרון בין ממשק המשתמש לשינויים בסרגל המערכת החשיפה. לדוגמה, ניתן להשתמש ב-listener הזה כדי להסתיר ולהציג את סרגל הפעולות עם הסתרה והצגה של שורת הסטטוס.