Android скрыть панель действий, строку состояния и элементы управления навигацией
Я пытаюсь сделать действие полностью полноэкранным в альбомной ориентации, а строка состояния и кнопки навигации отображаются в портретной ориентации. Я должен быть в состоянии сделать это программно.
Вот как я пытался заставить приложение работать в полноэкранном режиме.
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);
}
Проблемы заключаются в следующем:
- На некоторых устройствах я получаю пустую часть в верхней части экрана, которая равна высоте строки состояния, даже если строка состояния не отображается
- На других устройствах активность заполняет весь экран, но когда я нажимаю что-либо, появляется строка состояния и панель навигации, они изменяют размер макета, и это выглядит очень некрасиво
Чего я пытаюсь достичь:
Упражнение должно занимать весь экран в альбомной ориентации, располагаться за строкой состояния и панелью навигации, если они появляются
Когда пользователь нажимает на экран, он / она должен взаимодействовать с экраном. Вместо этого первый щелчок отображает статус и панели навигации, и взаимодействие возможно только после этого
Строка состояния должна появляться только тогда, когда пользователь перетаскивает сверху
2 ответа
Для этого используйте режим погружения и стабильный флаг пользовательского интерфейса. Для получения дополнительной информации, пожалуйста, обратитесь к документу на сайте разработчика.
Чтобы скрыть панель действий, вызовите метод getActionBar().hide().
А чтобы сделать активность полноэкранной, вызовите этот метод requestFeature(Window.FeatureNo_Title)