Как использовать отступы в представлениях и Compose

Если в вашем приложении есть код Compose и View, вам может потребоваться явно указать, какие системные вставки должен использовать каждый из них, и убедиться, что вставки отправляются в дочерние представления.

Переопределение вставок по умолчанию

Если на экране есть и представления, и код Compose в одной иерархии, может потребоваться переопределить отступы по умолчанию. В этом случае вам нужно явно указать, какой из них должен использовать вставки, а какой должен их игнорировать.

Например, если ваш самый внешний макет представляет собой макет Android View, вам следует использовать вставки в системе View и игнорировать их для Compose. Если же внешний макет – это composable-функция, то отступы нужно использовать в Compose и соответствующим образом дополнять composable-функции AndroidView.

По умолчанию каждый ComposeView использует все вставки на уровне WindowInsetsCompat. Чтобы изменить этот режим работы по умолчанию, задайте для параметра AbstractComposeView.consumeWindowInsets значение false.

Обратно совместимая отправка вставок для представлений

Если в вашем приложении есть код Views, вам может потребоваться подтвердить, что вставки отправляются в дочерние представления на устройствах с Android 10 (уровень API 29) или более ранней версии. Подробную информацию можно найти в руководстве по полноэкранному режиму.

Значки в системной строке

Вызов enableEdgeToEdge гарантирует, что цвета значков системной строки обновятся при изменении темы устройства.

При переходе на показ от края до края вам может потребоваться вручную изменить цвета значков в системной строке, чтобы они контрастировали с фоном приложения. Например, чтобы создать светлые значки в строке состояния, используйте следующий код:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);