Нулевые вставки системной навигации в Jetpack Compose для Android API < 30Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Нулевые вставки системной навигации в Jetpack Compose для Android API < 30

Сообщение Anonymous »

У меня есть фрагмент, в котором я установил ComposeView. Я проверяю вставки системной навигации для корневого представления и для Compose следующим образом:

Код: Выделить всё

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
return ComposeView(requireContext()).apply {
setContent {
val compatWindowInsets = WindowInsetsCompat.toWindowInsetsCompat(view?.rootWindowInsets!!, view)
val systemInsetTypesMask = WindowInsetsCompat.Type.navigationBars()
val viewSystemInsets = compatWindowInsets.getInsets(systemInsetTypesMask)
println("---> View: ${viewSystemInsets.bottom}")

val composeSystemInsets = WindowInsets.navigationBars
println("---> Compose: ${composeSystemInsets.getBottom(LocalDensity.current)}")

...
}
}
}
А для Android API >= 30 я получаю следующий результат:

Код: Выделить всё

---> View: 126
---> Compose: 126
Но для Android API < 30 я получаю:

Код: Выделить всё

---> View: 126
---> Compose: 0
Для Compose всегда ноль. Что является причиной этого и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/776 ... oid-api-30
Ответить

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

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

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

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

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