На моем старом телефоне отверстие для камеры и базовые кнопки находились за пределами экрана, на моем новом телефоне есть отверстие для камеры и базовые кнопки внутри экрана.
Благодаря небольшому количеству настроек мое приложение на старом телефоне работало в полноэкранном режиме.
Styles.xml
Код: Выделить всё
false
true
true
@null
Код: Выделить всё
Код: Выделить всё
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.attributes.layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
WindowCompat.setDecorFitsSystemWindows(window, false)
else {
@Suppress("DEPRECATION")
window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
}
Но все, что я могу получить, — это широкое поле между приложение и кнопка (вниз), а также между приложением и отверстием для камеры (вверх):

Но мне бы хотелось узкую границу:
[img]https:// i.sstatic.net/3PEds.png[/img]
аналогично браузеру Chrome для Android:
Как я могу сделать это программно?
У меня нет Мне не удалось найти ни одного решения моей проблемы в Интернете (и StackOverflow)
Я также не смог понять, как определить, есть ли в данном сотовом телефоне отверстие для камеры на экране или если на экране есть базовые кнопки. Похоже, что он основан на DisplayCutout, WindowInsets,boundingRectTop иboundingRectBottom, но реального и понятного примера использования в Интернете нет.
Подробнее здесь: https://stackoverflow.com/questions/709 ... one-screen
Мобильная версия