Meredupkan kolom sistem

Tutorial ini menjelaskan cara meredupkan kolom sistem (yaitu, status bar dan menu navigasi) di Android 4.0 (API level 14) dan yang lebih tinggi. Android tidak menyediakan cara bawaan untuk meredupkan bilah sistem pada versi sebelumnya.

Saat Anda menggunakan pendekatan ini, ukuran konten tidak berubah, tetapi ikon di bar sistem akan menyusut secara visual. Begitu pengguna menyentuh area status bar atau menu navigasi di layar, keduanya akan terlihat sepenuhnya. Manfaat dari pendekatan ini adalah bar masih ada tetapi detailnya dikaburkan, sehingga menciptakan pengalaman yang imersif tanpa mengorbankan akses yang mudah ke bar.

Meredupkan Status Bar dan Menu Navigasi

Anda dapat meredupkan status bar dan menu navigasi menggunakan flag SYSTEM_UI_FLAG_LOW_PROFILE, seperti berikut:

Kotlin

    // This example uses decor view, but you can use any visible view.
    activity?.window?.decorView?.apply {
        systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
    }
    

Java

    // This example uses decor view, but you can use any visible view.
    View decorView = getActivity().getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
    decorView.setSystemUiVisibility(uiOptions);
    

Begitu pengguna menyentuh status bar atau menu navigasi, flag akan dihapus, yang menyebabkan bar menjadi tidak diredupkan. Setelah flag dihapus, aplikasi Anda perlu menyetelnya ulang jika Anda ingin meredupkan bar lagi.

Gambar 1 menunjukkan gambar galeri di mana menu navigasi diredupkan (perhatikan bahwa aplikasi Galeri menyembunyikan status bar sepenuhnya; bukan meredupkannya). Perhatikan bahwa menu navigasi (sisi kanan gambar) memiliki titik putih samar di atasnya untuk merepresentasikan kontrol navigasi:

kolom sistem

Gambar 1. Bar sistem diredupkan.

Gambar 2 menunjukkan gambar galeri yang sama, tetapi kolom sistem ditampilkan:

kolom sistem

Gambar 2. Bar sistem terlihat.

Membuka Status Bar dan Menu Navigasi

Jika ingin secara terprogram menghapus flag yang ditetapkan melalui setSystemUiVisibility(), Anda dapat melakukannya seperti berikut:

Kotlin

    activity?.window?.decorView?.apply {
        // Calling setSystemUiVisibility() with a value of 0 clears
        // all flags.
        systemUiVisibility = 0
    }
    

Java

    View decorView = getActivity().getWindow().getDecorView();
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    decorView.setSystemUiVisibility(0);