隱藏導覽列

本課程將說明如何隱藏導覽列, Android 4.0 (API 級別 14)。

雖然本課程的重點 導覽列,那麼您必須設計讓應用程式隱藏狀態列 請參閱「隱藏狀態列」一文。 隱藏導覽列和狀態列 (但保留方便存取) 可讓內容使用整個顯示空間,進而提供更身歷其境的 使用者體驗

系統資訊列

圖 1. 導覽列。

隱藏導覽列

您可以使用 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,協助您的應用程式維持 穩定的版面配置。

使用這個方法時,您有責任確保 應用程式的使用者介面中,最後不會被系統資訊列遮住。如要 如果想瞭解這個主題,請參閱 隱藏狀態列課程。