在 View 和 Compose 中使用內嵌

如果應用程式同時含有 Compose 和 View 程式碼,您可能需要明確指出每個程式碼應使用哪些系統內嵌,並確保內嵌會調度至同層級檢視畫面。

覆寫預設內嵌

如果畫面在同一個階層中同時含有 View 和 Compose 程式碼,您可能需要覆寫預設內嵌項目。在這種情況下,您必須明確指出哪一個應使用內嵌邊距,哪一個應忽略內嵌邊距。

舉例來說,如果最外層版面配置是 Android View 版面配置,您應在 View 系統中使用內嵌,並忽略 Compose 的內嵌。或者,如果最外層的版面配置是可組合函式,您應在 Compose 中使用內嵌,並據此為 AndroidView 可組合函式填充。

根據預設,每個 ComposeView 都會消耗 WindowInsetsCompat 層級的所有內嵌項目。如要變更這個預設行為,請將 ComposeView.consumeWindowInsets 設為 false

為檢視畫面提供回溯相容的內嵌調度作業

如果應用程式包含 View 程式碼,您可能需要確認在搭載 Android 10 (API 級別 29) 以下版本的裝置上,邊框是否會調度至同層級 View。詳情請參閱從邊到邊的 View 指南

系統列圖示

呼叫 enableEdgeToEdge 可確保在裝置主題變更時更新系統列圖示顏色。

在採用無邊框設計時,您可能需要手動更新系統列圖示顏色,讓圖示與應用程式背景形成對比。例如,如要建立淺色狀態列圖示:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);