У меня есть видео, которое воспроизводится в маленьком окне с возможностью перехода в полноэкранный режим. Однако проблема в том, что скрытие / отображение строки состояния и панели навигации не работают должным образом. Я пробовал почти все решения, представленные в Stackoverflow, но ни одно из них не сработало. Это моя деятельность, которая находится в правильном состоянии пользовательского интерфейса:
Перед воспроизведением видео и переходом в полноэкранный режим
Вот как я вхожу в полноэкранный режим:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
Вот как я выхожу из полноэкранного режима:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
Первая проблема заключается в том, что в полноэкранном режиме и статус, и панель навигации правильно скрыты. Однако при первом прикосновении к экрану панель навигации будет видна, но больше никогда не скроется (я использую режим Leanback). Здесь можно увидеть:
Панель навигации не исчезнет после первого касания в полноэкранном режиме
Вторая проблема связана со строкой состояния. Когда видео завершится и вы выйдете из полноэкранного режима. Строка состояния перекрывается и не отображается должным образом. Показано ниже:
Строка состояния не отображается после выхода из полноэкранного режима