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