setOnApplyWindowInsetsListener никогда не вызывается - PullRequest
0 голосов
/ 06 января 2019

Я хотел бы рассчитать высоту панели навигации. Я видел эту презентацию: https://chris.banes.me/talks/2017/becoming-a-master-window-fitter-nyc/

Итак, я попытался использовать метод View.setOnApplyWindowInsetsListener(). Но по какой-то причине он никогда не вызывается.

Кто-нибудь знает почему? Есть ли какие-то ограничения?

Я пытался использовать это так:

navBarOverlay.setOnApplyWindowInsetsListener { v, insets -> 
   Timber.i("BOTTOM = ${insets.systemWindowInsetBottom}")
   return@setOnApplyWindowInsetsListener insets
}

Обратите внимание, что мой корневой макет - ConstraintLayout.

1 Ответ

0 голосов
/ 22 мая 2019

Мне пришлось (и я думаю, что я должен) явно вызвать requestApplyInsets () в какое-то подходящее время, чтобы заставить слушателя попасть.

Проверьте эту статью для некоторых возможных советов: https://medium.com/androiddevelopers/windowinsets-listeners-to-layouts-8f9ccc8fa4d1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...