Comment cacher le soft-key bar sur Android phone?

enter image description here

quand mon application démarre, j'aimerais cacher la barre des touches molles (en rectangle rouge) pour avoir un plus grand écran.

  1. Comment puis-je le cacher?

  2. est-ce que je dois montrer la barre volontairement quand l'application quitte? Ou il va se restaurer automatiquement après le départ de l'application?

Android 4.1, sans clés matérielles à l'avant du téléphone.

22
demandé sur ohho 2013-04-30 07:20:42

2 réponses

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

officiel doc

l'indicateur SYSTEM_UI_FLAG_LOW_PROFILE remplace L'indicateur STATUS_BAR_HIDDEN drapeau. Lorsqu'il est activé, ce drapeau permet le mode "profil bas" pour le système barre ou barre de navigation. Boutons de Navigation dim et d'autres éléments dans la barre de système se cache aussi. Le fait d'activer Ceci est utile pour créer plus de jeux immersifs sans distraction pour les boutons de navigation Système.

Le Drapeau SYSTEM_UI_FLAG_VISIBLE remplace le drapeau STATUS_BAR_VISIBLE pour demander la barre de système ou la barre de navigation être visible.

The SYSTEM_UI_FLAG_HIDE_NAVIGATION is a new flag that requests the barre de navigation cacher complètement. Être conscient que cela ne fonctionne que pour les barre de navigation utilisée par certains combinés (elle ne cache pas le système bar sur les tablettes). La barre de navigation retourne à la vue dès que le le système reçoit les entrées de l'utilisateur. En tant que tel, ce mode est utile principalement pour lecture vidéo ou d'autres cas dans lesquels l'écran entier est nécessaire mais la saisie de l'utilisateur n'est pas requis.

le comportement de la barre de navigation est dépendant de l'application IIRC, donc il devrait apparaître de nouveau après que l'utilisateur ait quitté votre application.

20
répondu MarsAtomic 2013-04-30 03:30:01

je sais que sa fin mais c'est la bonne réponse donc ce que vous essayez de faire est ce qui s'appelle immersive mode. for (API 19)

départ: https://developer.android.com/training/system-ui/immersive.html

le code que vous demandiez est:

@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);
    }
}
33
répondu mhdjazmati 2016-05-01 12:50:35