Menyembunyikan menu navigasi
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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}.
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 di
onResume()
atau onWindowFocusChanged()
.
- 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.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Hide the navigation bar\n\nThis lesson describes how to hide the navigation bar, which was introduced in\nAndroid 4.0 (API level 14).\n\nEven though this lesson focuses on hiding the\nnavigation bar, you should design your app to hide the status bar\nat the same time, as described in [Hiding the Status Bar](/training/system-ui/status).\nHiding the navigation and status bars (while still keeping them readily accessible)\nlets the content use the entire display space, thereby providing a more immersive\nuser experience.\n\n**Figure 1.** Navigation bar.\n\nHide the Navigation Bar\n-----------------------\n\nYou can hide the navigation bar using the\n[SYSTEM_UI_FLAG_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_HIDE_NAVIGATION) flag. This snippet hides both\nthe navigation bar and the status bar: \n\n### Kotlin\n\n```kotlin\nwindow.decorView.apply {\n // Hide both the navigation bar and the status bar.\n // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n // a general rule, you should design your app to hide the status bar whenever you\n // hide the navigation bar.\n systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN\n}\n```\n\n### Java\n\n```java\nView decorView = getWindow().getDecorView();\n// Hide both the navigation bar and the status bar.\n// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n// a general rule, you should design your app to hide the status bar whenever you\n// hide the navigation bar.\nint uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION\n | View.SYSTEM_UI_FLAG_FULLSCREEN;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nNote the following:\n\n- With this approach, touching anywhere on the screen causes the navigation bar (and status bar) to reappear and remain visible. The user interaction causes the flags to be be cleared.\n- Once the flags have been cleared, your app needs to reset them if you want to hide the bars again. See [Responding to UI Visibility Changes](/training/system-ui/visibility) for a discussion of how to listen for UI visibility changes so that your app can respond accordingly.\n- Where you set the UI flags makes a difference. If you hide the system bars in your activity's [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) method and the user presses Home, the system bars will reappear. When the user reopens the activity, [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) won't get called, so the system bars will remain visible. If you want system UI changes to persist as the user navigates in and out of your activity, set UI flags in [onResume()](/reference/android/app/Activity#onResume()) or [onWindowFocusChanged()](/reference/android/view/Window.Callback#onWindowFocusChanged(boolean)).\n- The method [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) only has an effect if the view you call it from is visible.\n- Navigating away from the view causes flags set with [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) to be cleared.\n\nMake Content Appear Behind the Navigation Bar\n---------------------------------------------\n\nOn Android 4.1 and higher, you can set your application's content to appear behind\nthe navigation bar, so that the content doesn't resize as the navigation bar hides and\nshows. To do this, use\n[SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION).\nYou may also need to use\n[SYSTEM_UI_FLAG_LAYOUT_STABLE](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_STABLE) to help your app maintain a\nstable layout.\n\nWhen you use this approach, it becomes your responsibility to ensure that critical parts\nof your app's UI don't end up getting covered by system bars. For more\ndiscussion of this topic, see the [Hiding the Status Bar](/training/system-ui/status#behind) lesson."]]