Есть ли способ, чтобы systemChrome SystemUIMode всегда показывал верхнюю строку состояния, но имел иммерсивный вид снизу?

#flutter #user-interface #statusbar #navigationbar

Вопрос:

Использование Flutter 2.5.2, тестирование на Pixel 2 и Iphone SE (2020),

Итак, для моего приложения я хочу максимально увеличить пространство экрана, но сохранить верхнюю строку состояния на протяжении большей части приложения. Я хотел бы скрыть нижнюю системную навигацию, но кажется, что использование SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]); приводит к тому, что нижний системный оверлей переходит в режим отката или что-то в этом роде.

Поскольку у меня есть функции прокрутки с моей собственной нижней панелью навигации, кажется, что я не могу прокручивать, не касаясь экрана, чтобы показать наложение системы в «ручном» режиме. Затем приложение жестикулирует без навигации по нижней части системы, блокируя мою нижнюю панель навигации. ‘ImmersiveSticky’ будет работать, но я бы хотел, чтобы верхняя строка состояния отображалась почти всегда. Использование SystemUiMode.immersiveSticky , похоже, игнорирует «overlays: []`.

Кто-нибудь знает, как использовать SystemChrome.setSystemUIChangeCallback , чтобы мои жесты проходили или SystemUiOverlay.top всегда включались с нижней частью, как immersiveSticky с чем-то вроде: SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, overlays: [SystemUiOverlay.top]); ?

Или может быть обходной путь, при котором я могу получить «копию» верхней строки состояния и создать свой собственный виджет, который я могу использовать в качестве верхней строки состояния и сохранить SystemUiMode.immersiveSticky ?

Ссылка на systemChrome.setEnabledSystemUIMode