Я пытаюсь сделать действие, которое будет полностью полноэкранным в альбомной ориентации, а строка состояния и кнопки навигации будут отображаться в портретной ориентации. Я должен иметь возможность делать это программно.
Вот как я пытался заставить приложение работать в полноэкранном режиме.
private void hideNavigationAndStatusBars(){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); // these work only on API 21 and above
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
Проблемы следующие:
- На некоторых устройствах я получаю пустую часть в верхней части экрана, которая равна высоте строки состояния, даже если строка состояния не отображается
- На других устройствах активность заполняет весь экран, но когда я щелкаю что-либо, появляются строка состояния и панель навигации, они изменяют размер макета, и это выглядит очень некрасиво
Чего я пытаюсь достичь:
Действие должно занимать весь экран в альбомной ориентации, располагаться за строкой состояния и панелью навигации, если они появляются.
Когда пользователь нажимает на экран, он должен взаимодействовать с экраном. Вместо этого при первом щелчке отображаются панели состояния и навигации, и взаимодействие возможно только после этого.
Строка состояния должна появляться только тогда, когда пользователь перетаскивает сверху