Merespons perubahan visibilitas UI

Tutorial ini menjelaskan cara mendaftarkan pemroses sehingga aplikasi Anda dapat menerima notifikasi tentang perubahan visibilitas UI sistem. Ini berguna saat Anda ingin menyinkronkan bagian lain dari UI Anda dengan menyembunyikan/menampilkan bilah sistem.

Mendaftarkan Pemroses

Untuk mendapatkan notifikasi tentang perubahan visibilitas UI sistem, daftarkan View.OnSystemUiVisibilityChangeListener ke tampilan Anda. Biasanya ini adalah tampilan yang Anda gunakan untuk mengontrol visibilitas navigasi.

Misalnya, Anda dapat menambahkan kode ini ke metode onCreate() aktivitas Anda:

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

Sebaiknya, biarkan UI Anda tetap sinkron dengan perubahan visibilitas bilah sistem. Misalnya, Anda dapat menggunakan pemroses ini untuk menyembunyikan dan menampilkan panel tindakan bersamaan dengan status bar yang disembunyikan dan ditampilkan.