Android WindowInsets 是 Android 系統提供的一種機制,用于處理窗口與屏幕邊緣之間的空間
WindowInsets 對 App 欄的影響主要體現在以下幾個方面:
狀態欄和導航欄的可見性:WindowInsets 可以用來控制狀態欄和導航欄的可見性。例如,當用戶將設備切換到全屏模式時,系統會隱藏狀態欄和導航欄,此時 WindowInsets 的相關屬性會發生變化。開發者可以通過監聽 WindowInsets 的變化來調整布局,以適應不同的屏幕狀態。
內容與窗口邊緣的間距:WindowInsets 還可以用來控制 App 內容與窗口邊緣之間的間距。例如,當設備處于橫屏模式時,系統會自動調整 App 內容的邊距,以適應屏幕的寬度。開發者可以通過獲取 WindowInsets 的相關屬性,如 top、bottom、left 和 right,來獲取這些間距值,并根據需要進行調整。
沉浸式模式:WindowInsets 支持沉浸式模式,可以讓 App 完全覆蓋整個屏幕,包括狀態欄和導航欄。在這種模式下,App 可以自定義狀態欄和導航欄的外觀和行為。要實現沉浸式模式,開發者需要在 App 的主題中設置 fitsSystemWindows 屬性為 true,并在代碼中調用 WindowInsetsController 類的 hide() 方法來隱藏狀態欄和導航欄。
總之,Android WindowInsets 對 App 欄的影響主要體現在控制狀態欄和導航欄的可見性、調整內容與窗口邊緣的間距以及實現沉浸式模式等方面。開發者可以通過監聽 WindowInsets 的變化和設置相關屬性來優化 App 的布局和用戶體驗。