在 View 和 Compose 中使用内边距

如果您的应用同时包含 Compose 代码和 View 代码,您可能需要明确指定每个代码应占用哪些系统边衬区,并确保边衬区会分派给同级视图。

替换默认边衬区

如果您的屏幕在同一层次结构中同时包含 View 和 Compose 代码,您可能需要替换默认边衬区。在这种情况下,您需要明确指定哪个视图应使用边衬区,哪个视图应忽略边衬区。

例如,如果最外层的布局是 Android View 布局,您应该在 View 系统中使用边衬区,并在 Compose 中忽略它们。或者,如果最外层的布局是可组合项,您应该在 Compose 中使用边衬区,并相应地填充 AndroidView 可组合项。

默认情况下,每个 ComposeView 都会消耗 WindowInsetsCompat 级消耗量中的所有插页式广告。如需更改此默认行为,请将 AbstractComposeView.consumeWindowInsets 设置为 false

视图的向后兼容的边衬区调度

如果您的应用包含视图代码,您可能需要确认插边是否已分派给搭载 Android 10(API 级别 29)或更低版本的设备上的同级视图。如需了解详情,请参阅全屏视图指南

系统栏图标

调用 enableEdgeToEdge 可确保在设备主题发生更改时更新系统栏图标颜色。

在实现无边框显示时,您可能需要手动更新系统栏图标颜色,使其与应用的背景形成对比。例如,如需创建浅色状态栏图标,请执行以下操作:

Kotlin

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

Java

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