Це моє рішення:
Спочатку визначте логічне значення, яке вказує, видно панель навігації чи ні.
boolean navigationBarVisibility = true //because it's visible when activity is created
Другий метод створення, який приховує панель навігації.
private void setNavigationBarVisibility(boolean visibility){
if(visibility){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
navigationBarVisibility = false;
}
else
navigationBarVisibility = true;
}
За замовчуванням, якщо натиснути кнопку активності після приховування навігаційної панелі, панель навігації буде видно. Отже, ми отримали його стан, якщо це видно, ми його приховаємо.
Тепер встановіть OnClickListener на ваш погляд. Я використовую поверхневий перегляд, тому для мене:
playerSurface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setNavigationBarVisibility(navigationBarVisibility);
}
});
Крім того, ми повинні викликати цей метод при запуску активності. Тому що ми хочемо приховати це на самому початку.
setNavigationBarVisibility(navigationBarVisibility);