本課程說明如何在 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 應用程式會完全隱藏狀態列,且不會將其調暗)。請注意,導覽列 (圖片右側) 會顯示淡色的白點,代表導覽控制項:
圖 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);