129 votes

Android: comment masquer ActionBar sur certaines activités

J'ai développé une application de démonstration simple avec un écran de démarrage, une carte et quelques écrans réguliers.

J'ai une barre d'action en haut qui contient un logo. Tout semble bien sur mon téléphone (Galaxy S1 I9000 V2.3) mais quand je le teste sur Galaxy S2 V4, la barre d'action apparaît également dans l'écran de démarrage et dans l'écran de la carte.

Les activités de démarrage et de carte n'héritent même pas de ActionBarActivity, alors comment est-ce possible et comment puis-je le faire disparaître ?

Manifeste:

Définition de MapActivity (c'est une longue donc j'ai inclus juste la définition):

public class MapActivity extends FragmentActivity implements LocationListener

Activité de l'écran de démarrage:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

public class SplashActivity extends Activity{

    private static final long SPLASH_DISPLAY_LENGTH = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
                SplashActivity.this.startActivity(mainIntent);
                SplashActivity.this.finish();
            }
        }, SPLASH_DISPLAY_LENGTH);

    }

}

9voto

Kyo Huu Points 178

Cela fonctionne pour moi! Mettez ceci dans votre activité dans le fichier manifests

Vous pouvez également créer votre propre thème dans styles.xml comme ceci:

        <item name = "android:windowActionBar">false</item>
        <item name = "android:windowNoTitle">true</item>
        // plus de personnalisations...

J'espère que cela aide.

9voto

Ajay Patel Points 83

Pour masquer l'ActionBar, ajoutez ce code dans le fichier java.

    ActionBar actionBar = getSupportActionBar();
    actionBar.hide();

8voto

joshgoldeneagle Points 2272

Si vous utilisiez Theme.AppCompat.Light, un équivalent meilleur serait Theme.AppCompat.Light.NoActionBar.

J'ai constaté que l'utilisation de Theme.AppCompat.NoTitleBar rendait le texte de mon bouton invisible, je utilise donc Theme.AppCompat.Light.NoActionBar.

5voto

Appliquez ce qui suit dans votre thème pour l'activité dans AndroidManifest.xml :

Ensuite, appliquez ce qui suit dans votre style dans style.xml

    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>

5voto

Tom Hart Points 1836

Vous pouvez utiliser le mode Profil bas Voir ici

Il suffit de rechercher SYSTEM_UI_FLAG_LOW_PROFILE qui réduit également la luminosité des boutons de navigation s'ils sont présents à l'écran.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X