調暗系統列 (已淘汰)

本課程說明如何在 Android 4.0 (API 級別 14) 以上版本中調暗系統列 (也就是狀態和導覽列)。Android 並未提供在先前版本中調暗系統資訊列的功能。

使用此方法時,內容不會調整大小,但系統列上的圖示會呈現視覺效果。使用者輕觸畫面的狀態列或導覽列區域後,兩個長條就會完整顯示。這種做法的優點是,長條仍然存在,但詳細資料會模糊不清,因此可在不犧牲應用程式的情況下,創造沉浸式體驗。

調暗狀態和導覽列

您可以使用 SYSTEM_UI_FLAG_LOW_PROFILE 標記來調暗狀態和導覽列,如下所示:

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);

使用者輕觸狀態或導覽列後,系統就會清除標記,讓長條看起來更加模糊。清除標記後,如果您想再次調暗長條,應用程式必須將其重設。

圖 1 顯示導覽列呈現暗灰色的圖庫圖片 (請注意, Gallery 應用程式會完全隱藏狀態列,且不會將其調暗)。請注意,導覽列 (圖片右側) 會顯示淡色的白點,代表導覽控制項:

系統資訊列

圖 1 系統資訊列顯示為灰色。

圖 2 顯示相同的圖片庫圖片,但系統列會顯示系統列:

系統資訊列

圖 2. 顯示的系統資訊列。

顯示狀態和導覽列

如要以程式輔助方式清除使用 setSystemUiVisibility() 設定的標記,您可以如下所示:

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);