Подтвердить что ты не робот

Как скрыть панель софт-клавиш на телефоне Android?

enter image description here

Когда начнется мое приложение, я бы хотел скрыть панель мягких клавиш (в красном прямоугольнике), чтобы иметь больший экран.

  • Как я могу скрыть это?

  • Нужно ли показывать планку, когда приложение закрывается? Или он автоматически восстановится после закрытия приложения?

Android 4.1, без аппаратных клавиш на передней панели телефона.

4b9b3361

Ответ 1

Try

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

От официального doc

Флаг SYSTEM_UI_FLAG_LOW_PROFILE заменяет STATUS_BAR_HIDDEN флаг. При установке этот флаг позволяет использовать режим "низкого профиля" для системы бар или панель навигации. Кнопки навигации dim и другие элементы в системная панель также скрывается. Включение этого полезно для создания большего количества захватывающие игры без отвлечения для кнопок навигации системы.

Флаг SYSTEM_UI_FLAG_VISIBLE заменяет флаг STATUS_BAR_VISIBLE запросить системную панель или панель навигации.

SYSTEM_UI_FLAG_HIDE_NAVIGATION - это новый флаг, который запрашивает навигационная панель полностью скрывается. Имейте в виду, что это работает только для панель навигации, используемая некоторыми мобильными телефонами (она не скрывает систему бар на планшетах). Панель навигации вернется к просмотру, как только система получает вход пользователя. Таким образом, этот режим полезен в первую очередь для воспроизведения видео или других случаев, когда требуется весь экран, но пользовательский ввод не требуется.

Поведение навигационной панели зависит от приложения IIRC, поэтому оно должно появляться снова после того, как пользователь покидает ваше приложение.

Ответ 2

Я знаю его поздно, но это правильный ответ, поэтому то, что вы пытаетесь сделать, это то, что называется режимом immersive. для (API 19)

проверить: https://developer.android.com/training/system-ui/immersive.html

Код, который вы запрашивали, это:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}