3
votes

Comment supprimer la barre noire apparaissant en bas?

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é.

 entrez la description de l'image ici

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?


4 commentaires

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.


5 Réponses :


0
votes

Bonjour, veuillez essayer le code ci-dessous

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


0 commentaires

0
votes

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);
    }
}


0 commentaires

0
votes

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);
}


0 commentaires

3
votes

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" />

à partir d'ici


1 commentaires

Vraiment apprécié. Cela a résolu le problème.



0
votes

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.


0 commentaires