Использование приведенного ниже кода является одним из способов скрыть навигацию
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Но проблема с вышесказанным заключается в том, что оно становится видимым, как только пользователь касается экрана.
В Android Kitkat есть функция, называемая IMMERSIVE
, которая скрывает панель уведомлений и навигацию. Он не отображается, даже если пользователь взаимодействует с экраном. Однако пользователь может сделать его видимым, проведя его сверху вниз по экрану. Ниже приведен код для его достижения
//Initializew this in onCreate()
View mDecorView = getWindow().getDecorView();
//Then call this function
private void hideSystemUI() {
mDecorView.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_LOW_PROFILE
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
Однако в моем случае я никогда не хотел, чтобы навигация и панель уведомлений были видны, даже если пользователь проводит пальцем сверху вниз по экрану. Я дал ему попытку, и мне удалось добиться этого частично. Я реализовал CountDownTimer
, который будет вызывать hideSystemUI()
каждую секунду или около того. Я знаю, что это не лучший способ сделать это. Но у меня не было другого решения для этого.
Если кто-то получит что-то, пожалуйста, дайте мне знать, как навсегда скрыть панель навигации и уведомлений :) Надеюсь, этот ответ кому-нибудь поможет в будущем:)
Просмотрите это видео, чтобы лучше понять эту функцию.