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);
}

Проблемы заключаются в следующем:

  1. На некоторых устройствах я получаю пустую часть в верхней части экрана, которая равна высоте строки состояния, даже если строка состояния не отображается
  2. На других устройствах активность заполняет весь экран, но когда я нажимаю что-либо, появляется строка состояния и панель навигации, они изменяют размер макета, и это выглядит очень некрасиво

Чего я пытаюсь достичь:

  1. Упражнение должно занимать весь экран в альбомной ориентации, располагаться за строкой состояния и панелью навигации, если они появляются

  2. Когда пользователь нажимает на экран, он / она должен взаимодействовать с экраном. Вместо этого первый щелчок отображает статус и панели навигации, и взаимодействие возможно только после этого

  3. Строка состояния должна появляться только тогда, когда пользователь перетаскивает сверху

2 ответа

Для этого используйте режим погружения и стабильный флаг пользовательского интерфейса. Для получения дополнительной информации, пожалуйста, обратитесь к документу на сайте разработчика.

Чтобы скрыть панель действий, вызовите метод getActionBar().hide().

А чтобы сделать активность полноэкранной, вызовите этот метод requestFeature(Window.FeatureNo_Title)

Другие вопросы по тегам