Используйте вставки в представлениях и компоновке

Если ваше приложение содержит код как 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);