Используйте вставки в представлениях и компоновке
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Если ваше приложение содержит код как Compose, так и View, вам может потребоваться явно указать, какие системные вставки каждое из них должно использовать, и обеспечить отправку вставок в родственные представления.
Переопределение вставок по умолчанию
Вам может потребоваться переопределить вставки по умолчанию, если на вашем экране есть код Views и Compose в одной иерархии. В этом случае вам нужно явно указать, какой из них должен использовать вставки, а какой — игнорировать.
Например, если ваш внешний макет — это макет Android View, вам следует использовать вставки в системе View и игнорировать их для Compose. В качестве альтернативы, если ваш внешний макет — компонуемый, вам следует использовать вставки в Compose и соответствующим образом заполнять компонуемые элементы AndroidView
.
По умолчанию каждый ComposeView
использует все вставки на уровне WindowInsetsCompat
. Чтобы изменить это поведение по умолчанию, установите для AbstractComposeView.consumeWindowInsets
значение false
.
Обратная совместимость вставной диспетчеризации для представлений
Если ваше приложение содержит код Views, вам может потребоваться подтвердить отправку вставок в родственные Views на устройствах под управлением Android 10 (уровень API 29) или ниже. Подробнее см. в руководстве по Views от Edge до Edge .
Значки системной панели
Вызов enableEdgeToEdge
обеспечивает обновление цветов значков системной панели при изменении темы устройства.
При использовании безрамочного режима вам может потребоваться вручную обновить цвета значков системной панели, чтобы они контрастировали с фоном вашего приложения. Например, чтобы создать светлые значки строки состояния:
Котлин
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false
Ява
WindowCompat.getInsetsController(window, window.getDecorView())
.setAppearanceLightStatusBars(false);
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-21 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-08-21 UTC."],[],[],null,["# Use insets in Views and Compose\n\nIf your app contains both Compose and View code, you may need to be explicit\nabout which system insets each one should consume and ensure that insets are\ndispatched to sibling views.\n\nOverriding default insets\n-------------------------\n\nYou may need to override default insets when your screen has both Views and\nCompose code in the same hierarchy. In this case, you need to be explicit in\nwhich one should consume the insets, and which one should ignore them.\n\nFor example, if your outermost layout is an Android View layout, you should\nconsume the insets in the View system and ignore them for Compose.\nAlternatively, if your outermost layout is a composable, you should consume the\ninsets in Compose, and pad the `AndroidView` composables accordingly.\n\nBy default, each `ComposeView` consumes all insets at the\n`WindowInsetsCompat` level of consumption. To change this default behavior, set\n[`AbstractComposeView.consumeWindowInsets`](/reference/kotlin/androidx/compose/ui/platform/AbstractComposeView#(androidx.compose.ui.platform.AbstractComposeView).consumeWindowInsets())\nto `false`.\n\nBackward compatible inset dispatching for views\n-----------------------------------------------\n\nIf your app contains Views code, you may need to confirm that insets are dispatched\nto sibling views on devices that run Android 10 (API level 29) or lower. See the\n[edge-to-edge Views guide](/develop/ui/views/layout/edge-to-edge#backward-compatible-dispatching)\nfor more information.\n\nSystem bar icons\n----------------\n\nCalling `enableEdgeToEdge` ensures system bar icon colors update when the device\ntheme changes.\n\nWhile going edge-to-edge, you might need to manually update the system bar icon\ncolors so they contrast with your app's background. For example, to create light\nstatus bar icons: \n\n### Kotlin\n\n```kotlin\nWindowCompat.getInsetsController(window, window.decorView)\n .isAppearanceLightStatusBars = false\n```\n\n### Java\n\n```java\nWindowCompat.getInsetsController(window, window.getDecorView())\n .setAppearanceLightStatusBars(false);\n```"]]