Pelajaran ini menjelaskan cara menyembunyikan bilah navigasi, yang diperkenalkan dalam Android 4.0 (level API 14).
Meskipun pelajaran ini berfokus pada menyembunyikan bilah navigasi, Anda harus mendesain aplikasi untuk menyembunyikan bilah status pada saat yang sama, seperti yang dijelaskan dalam Menyembunyikan Status Bar. Menyembunyikan menu navigasi dan status bar (sambil tetap membuatnya mudah diakses) memungkinkan konten menggunakan seluruh ruang tampilan, sehingga memberikan {i>user experience<i}.
![kolom sistem](https://developer.android.com/static/images/training/navigation-bar.png?authuser=9&hl=id)
Gambar 1. Menu navigasi.
Menyembunyikan Menu Navigasi
Anda dapat menyembunyikan bilah navigasi menggunakan
SYSTEM_UI_FLAG_HIDE_NAVIGATION
. Cuplikan ini menyembunyikan
{i>navigation bar<i} dan {i>status bar<i}:
Kotlin
window.decorView.apply { // Hide both the navigation bar and the status bar. // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as // a general rule, you should design your app to hide the status bar whenever you // hide the navigation bar. systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN }
Java
View decorView = getWindow().getDecorView(); // Hide both the navigation bar and the status bar. // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as // a general rule, you should design your app to hide the status bar whenever you // hide the navigation bar. int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions);
Perhatikan hal berikut:
- Dengan pendekatan ini, menyentuh di mana saja pada layar akan menyebabkan bilah navigasi (dan status bar) untuk muncul kembali dan tetap terlihat. Interaksi pengguna menyebabkan penanda dihapus.
- Setelah tanda dihapus, aplikasi perlu meresetnya jika Anda ingin menyembunyikan bilah lagi. Lihat Merespons Perubahan Visibilitas UI untuk diskusi tentang cara memproses perubahan visibilitas UI sehingga aplikasi Anda dapat merespons hal tersebut.
- Tempat Anda menetapkan tanda UI akan membuat perbedaan. Jika Anda menyembunyikan bilah sistem di kolom aktivitas
onCreate()
dan pengguna menekan Home, kolom sistem akan muncul kembali. Saat pengguna membuka kembali aktivitas,onCreate()
tidak akan dipanggil, jadi bilah sistem akan tetap terlihat. Jika Anda ingin perubahan UI sistem tetap ada saat pengguna masuk dan keluar dari aktivitas Anda, setel flag UI dionResume()
atauonWindowFocusChanged()
. - Hanya metode
setSystemUiVisibility()
berpengaruh jika tampilan yang Anda gunakan untuk memanggilnya terlihat. - Keluar dari tampilan menyebabkan flag
ditetapkan dengan
setSystemUiVisibility()
dihapus.
Memunculkan Konten Di Belakang Menu Navigasi
Pada Android 4.1 dan yang lebih tinggi, Anda dapat menyetel konten aplikasi Anda agar muncul di belakang
bilah navigasi, sehingga konten tidak
mengubah ukuran saat bilah navigasi menyembunyikan dan
acara TV. Untuk melakukannya, gunakan
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
.
Anda mungkin juga
perlu menggunakan
SYSTEM_UI_FLAG_LAYOUT_STABLE
untuk membantu aplikasi Anda mempertahankan
dan tata letak yang stabil.
Ketika Anda menggunakan pendekatan ini, Anda bertanggung jawab untuk memastikan bahwa bagian penting UI aplikasi Anda tidak akan tertutup oleh kolom sistem. Untuk selengkapnya diskusi tentang topik ini, lihat Menyembunyikan pelajaran Status Bar.