Es mi solución:
Primero, defina un booleano que indique si la barra de navegación está visible o no.
boolean navigationBarVisibility = true //because it's visible when activity is created
Segundo método de creación que oculta la barra de navegación.
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;
}
De forma predeterminada, si hace clic en la actividad después de ocultar la barra de navegación, la barra de navegación será visible. Así que tenemos su estado si es visible, lo ocultaremos.
Ahora configure OnClickListener en su vista. Yo uso una vista de superficie, así que para mí:
playerSurface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setNavigationBarVisibility(navigationBarVisibility);
}
});
Además, debemos llamar a este método cuando se inicia la actividad. Porque queremos esconderlo al principio.
setNavigationBarVisibility(navigationBarVisibility);