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