如果您的应用同时包含 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);