Meredupkan kolom sistem

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

Saat Anda menggunakan pendekatan ini, ukuran konten tidak berubah, tetapi ikon di kolom sistem akan menyusut secara visual. Segera setelah pengguna menyentuh area status bar atau menu navigasi di layar, kedua panel akan terlihat sepenuhnya. Keuntungan dari pendekatan ini adalah batang-batang tersebut masih ada tetapi detailnya terhalang, sehingga menciptakan pengalaman yang imersif tanpa mengorbankan akses yang mudah ke batang-batangnya.

Meredupkan Status Bar dan Menu Navigasi

Anda dapat meredupkan status bar dan menu navigasi menggunakan tanda 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, sehingga menyebabkan batang tidak diredupkan. Setelah tanda dihapus, aplikasi Anda perlu meresetnya jika Anda ingin meredupkan bar lagi.

Gambar 1 menunjukkan gambar galeri dengan menu navigasi yang diredupkan (perhatikan bahwa aplikasi Galeri sepenuhnya menyembunyikan status bar, tetapi tidak 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 dengan 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);