Android: как заставить навигационную панель быть видимой на Samsung Galaxy S8
Можно ли заставить приложение всегда отображаться на панели навигации в приложении Android? На Samsung Galaxy S8 пользователь может скрыть панель навигации во время "выполнения" - что вызывает некоторые неожиданные поведения в приложении (если вам интересно; я попытался добавить setOnSystemUiVisibilityChangeListener и перерисовать, сделать недействительными, requestLayout и forceLayout в представлении без удачи. Перезапуск действия неприменим, так как приложение является приложением с одним действием. Я также изучил WindowInsets, и там тоже не повезло.).
Поэтому я просто хочу избежать этой проблемы, не позволяя пользователю удалить панель навигации. Все ресурсы, которые я могу найти в Интернете, предназначены для сокрытия навигационной панели. Кто-нибудь, как какие-либо предложения о том, как сделать это остаться?
2 ответа
Я не очень уверен в Samsung S8, но я работал на Samsung S7. Я использовал режим откидывания назад setSystemUiVisibility()
и передал эти два флага
1.SYSTEM_UI_FLAG_FULLSCREEN
2.SYSTEM_UI_FLAG_HIDE_NAVIGATION
Также для включения режима погружения я использовал SYSTEM_UI_FLAG_IMMERSIVE
в соединении.
На него ссылались из видимости и погружения.
Поправь меня, если я ошибаюсь или не понял вопроса.
Это сработало для меня:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);