Je suis nouveau dans le développement Android. Je souhaite que mon application prenne en charge la taille d'écran de mon appareil, c'est-à-dire 1080 x 2160 pixels
. Actuellement, il y a une barre inférieure noire qui est affichée à la place de l'endroit où les boutons de navigation auraient été.
Veuillez noter que je ne veux pas du mode plein écran . J'ai désactivé la navigation par bouton sur mon appareil. Ce n’est que pour cette application que le rectangle noir du bas apparaît.
Je souhaite simplement que mon application prenne en charge le système de navigation gestuelle de mon appareil au lieu des boutons. Comment faire disparaître la barre inférieure en utilisant Java ( Android Studio
) pour que mon application utilise cet espace? p>
5 Réponses :
Bonjour, veuillez essayer le code ci-dessous
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Vous pouvez essayer ceci
@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); } }
Essayez d'ajouter ce code
View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener(null);
AVERTISSEMENT
Si vous avez deux activités, ajoutez ceci avant de changer
@Override protected void onCreate(Bundle savedInstanceState) { ... hideSystemUI(this, 1000); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { // Hide bar after 1 second hideSystemUI(this, 1000); } } public static void hideSystemUI(@NonNull final Activity activity, final int delayMs) { View decorView = activity.getWindow().getDecorView(); int uiState = View.SYSTEM_UI_FLAG_IMMERSIVE | 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; final Handler handler = new Handler(); decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { if (visibility == View.VISIBLE) { Runnable runnable = new Runnable() { @Override public void run() { hideSystemUI(activity, 1000); } }; handler.postDelayed(runnable, delayMs); } } }); decorView.setSystemUiVisibility(uiState); }
La question est ancienne mais j'ai rencontré le même problème et je n'ai pas trouvé de solution sur SO.
ce problème se produit pour les écrans longs
Nous vous recommandons de concevoir votre application de manière à prendre en charge des proportions de 2,1 ou plus. Pour cela, vous ajouterez ce qui suit à l'élément "application" de votre fichier Manifest:
<meta-data android:name="android.max_aspect" android:value="2.1" />
Vraiment apprécié. Cela a résolu le problème.
J'ai eu le même problème, mis à jour le fichier manifeste avec ceci ou le supprimer si vous en avez un.
avant
<meta-data android:name="android.max_aspect" android:value="2.4" />
après
<meta-data android:name="android.max_aspect" android:value="2.1" />
travaille pour moi maintenant.
Voulez-vous masquer la barre de navigation en bas?
Masquer la barre de navigation inférieure ne semble pas fonctionner, même en plein écran, j'obtiens cette barre inférieure
Avez-vous essayé d'ajouter
qemu.hw.mainkeys = 1 (désactiver les boutons à l'écran)
au bas de votre build.props?J'ai déjà désactivé les boutons d'écran de mon appareil, ce n'est que pour cette application que le rectangle noir du bas s'affiche. Mon problème est similaire à cette question. Mais la réponse ne le résout pas.