Android вид за поведением панели навигации, как это исправить? - PullRequest
0 голосов
/ 10 декабря 2018

Итак, у меня здесь много ответов о проблемах как со строкой состояния, так и со строкой навигации.Приложение, над которым я сейчас работаю, должно располагаться за строкой состояния, но не за панелью навигации, поскольку оно использует BottomBar в качестве основной навигации.

Итак, я попытался установить <item name="android:windowTranslucentNavigation">true</item>, иустановка этого параметра на false просто меняет оттенок элементов управления, за ним все еще рисуется контент.

Удаление window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS) отключает контент за строкой состояния и панелью навигации.Так что не ходи ...

Переключение android:fitsSystemWindows="true" не решает проблему ...

Я пытался определить, видна ли панель навигации, но пока мне не удалось, даже если он не виден, resources.getIdentifier("navigation_bar_height", "dimen", "android") будет возвращать значение, как если бы отображалась полоса.А атрибут config_showNavigationBar работает только тогда, когда устройство имеет физические клавиши (например, Samsung)

Я тестирую на Moto X4 (Pie) и Xiaomi Note 6 Pro (Oreo),включение навигации с помощью жестов, чтобы скрыть панель навигации.

Печать (верх Xiaomi, низ X4):


1) Поведение «из коробки»:

Tabs behind the Navigation Bar


2) При получении высоты NavBar и применении собственного поля к BottomBar:

Added custom margin to the BottomBar, so it appears above the Navigation Bar


3) Нежелательное поведение при включенном режиме жестов:

The black bar stays, because I can't listen for any property that hints if the Navigation Bar is actually there


4) Ожидаемое поведение при включенном режиме жестов:

The black bar should be hidden, because some property signaled that the navigation controls are not there

...