本課程將說明如何隱藏導覽列, Android 4.0 (API 級別 14)。
雖然本課程的重點 導覽列,那麼您必須設計讓應用程式隱藏狀態列 請參閱「隱藏狀態列」一文。 隱藏導覽列和狀態列 (但保留方便存取) 可讓內容使用整個顯示空間,進而提供更身歷其境的 使用者體驗
隱藏導覽列
您可以使用
SYSTEM_UI_FLAG_HIDE_NAVIGATION
標記。這段程式碼同時隱藏了
導覽列和狀態列:
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);
注意事項:
- 使用這個方法時,輕觸畫面上的任何位置都會產生導覽列 ( 狀態列)。使用者互動會導致標記處於 。
- 清除標記後,您的應用程式必須重設標記。 就可以再次隱藏長條請參閱回應 UI 瀏覽權限變更一文 討論如何監聽 UI 瀏覽權限變更,讓應用程式能夠 做出相應回應
- UI 旗標的設定位置會有所不同。如果您在活動
onCreate()
方法和使用者按下主畫面按鈕後,系統資訊列會 再次顯示。使用者重新開啟活動時,onCreate()
因此系統不會呼叫系統資訊列,因此系統資訊列仍會顯示在畫面上。如果您希望系統 UI 變更 在使用者瀏覽及退出活動時保持不變;請在onResume()
或onWindowFocusChanged()
。 - 僅限
setSystemUiVisibility()
方法 如果從可以呼叫的檢視畫面可以看見,就會產生作用。 - 離開檢視畫面會造成標記
使用
setSystemUiVisibility()
設定 。
讓內容顯示在導覽列後方
在 Android 4.1 以上版本中,您可以將應用程式內容設為
這樣內容就不會在導覽列隱藏時調整大小
電視節目方法是使用
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
。
您可能還需要使用
SYSTEM_UI_FLAG_LAYOUT_STABLE
,協助您的應用程式維持
穩定的版面配置。
使用這個方法時,您有責任確保 應用程式的使用者介面中,最後不會被系統資訊列遮住。如要 如果想瞭解這個主題,請參閱 隱藏狀態列課程。