Я использую это в своем v27\themes.xml:
Код: Выделить всё
true
@android:color/transparent
Код: Выделить всё
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) {
window.decorView.systemUiVisibility =
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
}
}
При этом все выглядит нормально на API >= 27, где содержимое прокручивается за теперь прозрачной панелью навигации, но в старых API содержимое закрыто черным цветом. панель навигации.
Я знаю, что мне нужно получить WindowInsets и добавить его к существующему отступу (или в случае AppBarLayout он сам будет обрабатывать вставки), но я не могу заставить его работать с FAB.
Я нашел эту статью о добавлении вставки к отступу представления, но поскольку FAB использует поля, я не уверен, если я справа track.
Есть ли какая-либо документация, пример, передовой опыт обработки вставок при переходе от края к краю ? Кажется, что некоторые виджеты, такие как AppBarLayout, справляются с этим изящно, но как я могу заставить FAB также регулировать свои поля?
Обновление 1
Чтобы указать, что при добавлении android:fitsSystemWindows=true в координаторLayout он также обрабатывает вставки, но с майор недостаток:
У меня есть два макета, каждый с координатором: «родительский макет» определяет координатор с AppBarLayout и FrameLayout для хранения фактического содержимого и «дочернего макета», используемого фрагментом, помещенным в последний.
Из-за этого я не могу добавить android:fitsSystemWindows=true в дочерний макет, потому что это приведет к появлению пустого пространства сверху (между панелью инструментов и содержимым), и я не могу поместить его в родительский макет, потому что тогда FAB не будет обновлен до вставки.
Подробнее здесь: https://stackoverflow.com/questions/572 ... ndowinsets
Мобильная версия