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

    }

}

1voto

nanaboison Points 101

Si votre activité étend AppCompatActivity, vous pouvez ajouter cette ligne super.getSupportActionBar().hide(); avant setContentView()

1voto

ilaiyaraja MCA Points 31

getsupportactionbar.hide();

100% cela fonctionnera sur n'importe quelle version d'Android Studio basée sur le langage Java.

1voto

DragonFire Points 496

Cela fonctionne dans API 27

Dans le fichier styles.xml, remplacez le code par ce qui suit....

        <!-- Personnalisez votre thème ici. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

Ensuite, dans les fichiers (par exemple activity_list.xml) dans lesquels vous souhaitez avoir une barre d'outils, ajoutez le code suivant.

Si vous rencontrez des problèmes, passez au linear layout (car c'est sur ce type de code que ce test a été effectué)

0voto

Tarik Billa Points 102

Remplacez AndroidManifest.xml

android:theme="@style/FullscreenTheme"

à

android:theme="@style/Theme.Design.NoActionBar"

0voto

Vérifiez l'attribut de rembourrage si le problème persiste après avoir changé de thème.

Le problème de rembourrage crée un espace blanc en haut de la fenêtre du fragment / de l'application.

Le problème de rembourrage crée un espace blanc en haut de la fenêtre du fragment / de l'application

Une fois que vous avez supprimé la valeur de rembourrage - top, l'espace blanc est automatiquement supprimé.

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