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


Android поддерживает вырезы на дисплее на устройствах с Android 9 (уровень API 28) и выше. Однако производители устройств также могут поддерживать вырезы на дисплее на устройствах с Android 8.1 или ниже.
На этой странице описывается, как реализовать поддержку устройств с вырезами в Compose, включая работу с областью выреза , то есть прямоугольником от края до края на поверхности дисплея, содержащим вырез.
Случай по умолчанию
Приложения, ориентированные на API уровня 34 или ниже, или действия, не вызывающие enableEdgeToEdge
, не будут отрисовываться в области выреза по умолчанию, если только приложение не отрисовывается в системной панели, содержащей вырез дисплея.
Приложения, ориентированные на API уровня 35 или выше на устройствах под управлением Android 15 или выше, или действия, вызывающие enableEdgeToEdge
, отрисовываются в области выреза.
Другими словами, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
, LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
и LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
интерпретируются как LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
для неплавающих окон в приложениях, ориентированных на API уровня 35 или выше на устройствах под управлением Android 15 или выше.
Обрабатывать информацию о вырезках вручную
Вы должны обрабатывать информацию о вырезе, чтобы область выреза не закрывала важный текст, элементы управления или интерактивные элементы, требующие точного распознавания касания (чувствительность к касанию может быть ниже в области выреза). При обработке вырезов не задавайте жестко высоту строки состояния, так как это может привести к перекрытию или обрезанию содержимого. Вместо этого обрабатывайте вырезы любым из следующих способов:
Использование
WindowInsets.displayCutout
,WindowInsets.safeContent
илиWindowInsets.safeDrawing
Доступ к объекту
Path
выреза с помощьюLocalView.current.rootWindowInsets.displayCutout
Для Compose мы рекомендуем использовать displayCutout
, safeContent
или safeDrawing
для обработки вырезов в ваших компонуемых элементах. Такой подход позволяет учитывать заполнение выреза дисплея там, где это необходимо, или игнорировать его там, где это не требуется.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Вставки окон в Compose
- Графические модификаторы
- Стиль абзаца
Вырез дисплея — это область на некоторых устройствах, которая простирается на поверхность дисплея. Это позволяет использовать экран от края до края , предоставляя место для важных датчиков на передней панели устройства.


Android поддерживает вырезы на дисплее на устройствах с Android 9 (уровень API 28) и выше. Однако производители устройств также могут поддерживать вырезы на дисплее на устройствах с Android 8.1 или ниже.
На этой странице описывается, как реализовать поддержку устройств с вырезами в Compose, включая работу с областью выреза , то есть прямоугольником от края до края на поверхности дисплея, содержащим вырез.
Случай по умолчанию
Приложения, ориентированные на API уровня 34 или ниже, или действия, не вызывающие enableEdgeToEdge
, не будут отрисовываться в области выреза по умолчанию, если только приложение не отрисовывается в системной панели, содержащей вырез дисплея.
Приложения, ориентированные на API уровня 35 или выше на устройствах под управлением Android 15 или выше, или действия, вызывающие enableEdgeToEdge
, отрисовываются в области выреза.
Другими словами, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
, LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
и LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
интерпретируются как LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
для неплавающих окон в приложениях, ориентированных на API уровня 35 или выше на устройствах под управлением Android 15 или выше.
Обрабатывать информацию о вырезках вручную
Вы должны обрабатывать информацию о вырезе, чтобы область выреза не закрывала важный текст, элементы управления или интерактивные элементы, требующие точного распознавания касания (чувствительность к касанию может быть ниже в области выреза). При обработке вырезов не задавайте жестко высоту строки состояния, так как это может привести к перекрытию или обрезанию содержимого. Вместо этого обрабатывайте вырезы любым из следующих способов:
Использование
WindowInsets.displayCutout
,WindowInsets.safeContent
илиWindowInsets.safeDrawing
Доступ к объекту
Path
выреза с помощьюLocalView.current.rootWindowInsets.displayCutout
Для Compose мы рекомендуем использовать displayCutout
, safeContent
или safeDrawing
для обработки вырезов в ваших компонуемых элементах. Такой подход позволяет учитывать заполнение выреза дисплея там, где это необходимо, или игнорировать его там, где это не требуется.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Вставки окон в Compose
- Графические модификаторы
- Стиль абзаца