Я видел много людей, которые боролись с вставками окон в Android. Самая большая проблема заключается в том, что в большинстве случаев в качестве значения возвращается 0. У меня тоже была эта проблема, и я нашел ее решение здесь. Он где-то спрятан в документации Java...
Чтобы получить высоту строки состояния или вставку для компоновки, вам нужно сделать следующее.
Шаг 1: включите следующее в oncreate ваша активность
Код: Выделить всё
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
}
Шаг 2. После того, как вы включили setDecorFitsSystemWindows в свою активность onCreate, вам необходимо добавить следующее в манифест вашей активности.
Шаг 3. Чтобы добавить отступы строки состояния к составному элементу, вы можете использовать следующий модификатор:
Код: Выделить всё
modifier = modifier.windowInsetsPadding(WindowInsets.safeDrawing)
Или, если вы хотите использовать любые другие insetPaddings, вы можете использовать класс WindowInsets. Я читал много проблем с переполнением стека, когда люди получали 0.0dp, возвращаемые в качестве вставки заполнения. Это потому, что вы забыли часть настройки на шагах 1 и 2.
Надеюсь, это поможет вам и избавит вас от многих разочарований.
Всего хорошего! п>
Подробнее здесь:
https://stackoverflow.com/questions/792 ... eturning-0