Как сохранить пространство статус-бара? (Андроид 15+)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить пространство статус-бара? (Андроид 15+)

Сообщение Anonymous »

В Android 15 предлагается использовать EnableEdgeToEdge(), но при этом удаляется верхнее смещение строки состояния, в результате чего основной контент перекрывается с ней.
Что такое лучший способ сохранить высоту строки состояния? Просто оставьте его прозрачным и визуализируйте содержимое под ним.
Это моя попытка, она работает, но там много кода, есть ли более простой способ?
< pre class="lang-kotlin Prettyprint-override">// in the MainActivity.onCreate():

enableEdgeToEdge()

// the callback will be invoked repeatedly, use this flag to only set the margin-top once
var offsetAdjusted = false

window.decorView.setOnApplyWindowInsetsListener { _, insets ->
if (!offsetAdjusted) {
offsetAdjusted = true

val top = if(Build.VERSION.SDK_INT > Def.ANDROID_10) // for android > 10
insets.getInsetsIgnoringVisibility(WindowInsets.Type.statusBars()).top
else // for android 10
view.rootWindowInsets.stableInsetTop

// the fragment container, which is a FragmentContainerView
val container = binding.root.findViewById(R.id.nav_host_fragment_activity_main)

val params = container.layoutParams as ViewGroup.MarginLayoutParams
params.topMargin = top
container.layoutParams = params
}

insets
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... android-15
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»