Отступ от статусбара для snackbar в android api 35

Хочу сделать отступ от статусбара для android api 35, но не могу понять почему не отступает.

введите сюда описание изображения

inline fun View.snackBarTop(string: String, length: Int = LENGTH_LONG, f: Snackbar.() -> Unit) {
    val snackBarTop = make(this, string, length)
    val snackBarView = snackBarTop.view
    val params: LayoutParams = snackBarView.layoutParams as LayoutParams
    params.gravity = Gravity.TOP
    ViewCompat.setOnApplyWindowInsetsListener(snackBarView) { _, windowInsets ->
        val insets = windowInsets.getInsets(
            WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout()
        )
        snackBarView.translationY = insets.top.toFloat()
        WindowInsetsCompat.CONSUMED
    }
    snackBarView.layoutParams = params
    snackBarTop.f()
    snackBarTop.show()
}

Ответы (1 шт):

Автор решения: Egor

В API 35 возможны изменения в поддержке различных типов Insets. Попробуйте заменить:

val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemGestures())

на:

val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
  • systemGestures() возвращает отступы для системных жестов (например, свайпы с краев), которые могут быть заблокированы приложением.
  • systemBars() возвращает отступы для статус-бара, навигационного бара и других системных элементов, которые всегда видны и учитываются при макетировании. Для отступа от статус-бара systemBars() чаще всего более корректен в вашей ситуации, так как он включает именно эти элементы, а не жесты управления системой.

https://developer.android.com/reference/android/view/WindowInsets.Type

→ Ссылка