Как скрыть панель софт-клавиш на телефоне Android?
Когда мое приложение запускается, я бы хотел скрыть панель софт-клавиш (в красном прямоугольнике), чтобы увеличить экран.
Как я могу это скрыть?
Нужно ли целенаправленно показывать панель при выходе из приложения? Или он восстановится автоматически после выхода из приложения?
Android 4.1, без аппаратных клавиш на передней панели телефона.
2 ответа
Пытаться
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Из официального документа
Флаг SYSTEM_UI_FLAG_LOW_PROFILE заменяет флаг STATUS_BAR_HIDDEN. Когда этот флаг установлен, он включает режим "низкого профиля" для системной панели или панели навигации. Кнопки навигации затемняются и другие элементы на системной панели также скрываются. Включение этого параметра полезно для создания более захватывающих игр без отвлечения кнопок системной навигации.
Флаг SYSTEM_UI_FLAG_VISIBLE заменяет флаг STATUS_BAR_VISIBLE, чтобы запросить отображение системной панели или панели навигации.
SYSTEM_UI_FLAG_HIDE_NAVIGATION - это новый флаг, который запрашивает панель навигации полностью скрыться. Имейте в виду, что это работает только для панели навигации, используемой некоторыми телефонами (она не скрывает системную панель на планшетах). Панель навигации возвращается к просмотру, как только система получает пользовательский ввод. Как таковой, этот режим полезен в первую очередь для воспроизведения видео или других случаев, когда требуется весь экран, но пользовательский ввод не требуется.
Поведение навигационной панели зависит от приложения IIRC, поэтому оно должно появиться снова после того, как пользователь покинет ваше приложение.
Я знаю, что уже поздно, но это правильный ответ, так что вы пытаетесь сделать то, что называется иммерсивным режимом. для (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);
}
}