Это мое решение:
Сначала определите логическое значение, которое указывает, отображается ли панель навигации или нет.
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 на свое представление. Я использую Surfaceview, поэтому для меня:
playerSurface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setNavigationBarVisibility(navigationBarVisibility);
}
});
Также мы должны вызывать этот метод при запуске активности. Потому что мы хотим скрыть это вначале.
setNavigationBarVisibility(navigationBarVisibility);