Если ваше приложение содержит код как Compose, так и View, вам может потребоваться явно указать, какие системные вставки каждое из них должно использовать, и обеспечить отправку вставок в родственные представления.
Переопределение вставок по умолчанию
Вам может потребоваться переопределить вставки по умолчанию, когда на вашем экране есть и Views, и Compose code в одной и той же иерархии. В этом случае вам нужно будет явно указать, какой из них должен потреблять вставки, а какой должен их игнорировать.
Например, если ваш внешний макет — это макет Android View, вы должны использовать вставки в системе View и игнорировать их для Compose. В качестве альтернативы, если ваш внешний макет — это компонуемый, вы должны использовать вставки в Compose и дополнять компонуемые AndroidView
соответствующим образом.
По умолчанию каждый ComposeView
потребляет все вставки на уровне потребления WindowInsetsCompat
. Чтобы изменить это поведение по умолчанию, установите AbstractComposeView.consumeWindowInsets
в false
.
Обратная совместимость вставной диспетчеризации для представлений
Если ваше приложение содержит код Views, вам может потребоваться подтвердить, что вставки отправляются в родственные представления на устройствах с Android 10 (уровень API 29) или ниже. Для получения дополнительной информации см. руководство Edge-to-Edge Views.
Значки системной панели
Вызов enableEdgeToEdge
обеспечивает обновление цветов значков системной панели при изменении темы устройства.
При переходе от края к краю вам может потребоваться вручную обновить цвета значков системной панели, чтобы они контрастировали с фоном вашего приложения. Например, чтобы создать светлые значки строки состояния:
Котлин
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Ява
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);