Activité Android sans ActionBar

j'ai Activities dans mon Application et à toutes, je ne veux pas de l' Action Bar. Je ne trouve pas comment le désactiver. J'ai essayé de trouver un attribut de l'appliquer à l' main_activity.xml mais jusqu'à présent, je n'ai pas trouvé quoi que ce soit. Quelqu'un peut-il m'aider s'il vous plaît?

40
demandé sur Igor Fridman 2014-09-16 12:10:14

9 réponses

Haha, j'ai été coincé à ce point tout à l'heure, donc je suis content, je peux vous aider avec une solution qui a fonctionné pour moi au moins :)

ce que vous voulez faire est de définir un nouveau style dans les valeurs/styles.xml de sorte qu'il ressemble à ceci

<resources>
    <style name = "AppTheme" parent = "android:Theme.Holo.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name = "NoActionBar" parent = "@android:style/Theme.Holo.Light">
        <item name = "android:windowActionBar">false</item>
        <item name = "android:windowNoTitle">true</item>
    </style>

</resources>

seul le style NoActionBar est intéressant pour vous. Enfin, vous devez définir est comme le thème de votre application dans L'AndroidManifest.xml de sorte qu'il ressemble à ceci

<application
    android:allowBackup = "true"
    android:icon = "@drawable/ic_launcher"
    android:label = "@string/app_name"
    android:theme = "@style/NoActionBar"   <!--This is the important line-->
    >
    <activity
    [...]

j'espère que cela aidera, sinon, laissez-moi savoir.

64
répondu JRsz 2018-03-20 09:27:46

Il y a plusieurs façons de le faire.

1) Changez le thème dans le manifeste Android

sous l'élément Application, vous trouverez la balise de thème. Le remplacer avec ce one -

android:theme="@android:style/Theme.NoTitleBar"

Si vous utilisez AppCompat, utilisez @android:style/Theme.AppCompat.NoActionBar.

Ce sera le thème de toutes les activités. Si vous n'avez pas besoin de la barre d'action dans une acitivité, puis définissez le thème de l'activité conteneur, c'est à dire

<activity android:theme="@android:style/Theme.NoTitleBar" ...>

Vous pouvez également définir les android:theme="@android:style/Theme.NoTitleBar" thème dans les styles et les utiliser plus tard.


2) Créer un thème personnalisé

Ajouter res/values/styles.xml

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
     <item name="windowActionBar">false</item>
     <item name="android:windowNoTitle">true</item>
</style>

et définissez-le comme le thème de votre activité dans Manifest:

<activity android:theme="@style/NoActionBar" ... />

3) Supprimer dynamiquement la barre D'Action

Mettez ce code dans le onCreate méthode avant de définir content view -

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();

si vous utilisez la bibliothèque de support getSupportActionBar().

59
répondu Confuse 2017-01-24 10:30:25

considérant que tout le monde affiche des façons plus anciennes de cacher la barre D'action voici la bonne façon de l'implémenter dans styles pour la bibliothèque de support AppCompat. Ce que je suggère fortement, si vous ne l'avez pas déjà fait.

il suffit de supprimer la barre D'action

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

si vous utilisez les bibliothèques de support appcompat, c'est la façon la plus simple et recommandée de cacher la barre D'action pour faire le plein écran ou commencer à implémenter la barre d'outils dans votre disposition.

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Your Toolbar Color-->
    <item name="colorPrimary">@color/primary</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/primary_dark</item>

    <!-- colorAccent is used as the default value for colorControlActivated,
     which is used to tint widgets -->
    <item name="colorAccent">@color/accent</item>

    <!-- You can also set colorControlNormal, colorControlActivated
     colorControlHighlight, and colorSwitchThumbNormal. -->
</style>

puis changer la couleur de votre barre d'outils

<android.support.v7.widget.Toolbar
    android:id=”@+id/my_awesome_toolbar”
    android:layout_height=”wrap_content”
    android:layout_width=”match_parent”
    android:minHeight=”?attr/actionBarSize”
    android:background=”?attr/primary” />

dernière note: votre classe D'activité devrait étendre L'application

public class MainActivity extends AppCompatActivity {

<!--Activity Items -->

}
6
répondu Eugene H 2015-09-12 16:45:04

Vous pouvez aussi changer l'héritage de L'Activitépar action en activité telle qu'écrite ici.

UPDATE

une bonne solution est ici:

@Override
protected void onCreate(Bundle savedInstanceState) {
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_main);
}
4
répondu CoolMind 2017-05-23 10:31:37

je vais essayer de le montrer aussi simple que je le peux:

déclare L'activité plein écran dans le fichier MAINIFEST ANDROID:

<activity
            android:name=".GameActivity"
            android:label="@string/title_activity_game"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

maintenant dans Android studio ( si vous l'utilisez) ouvrez votre fichier XML D'activité (dans mon exemple activity_game.xml) dans designer et sélectionner le thème (au-dessus du téléphone mobile dans le bouton designer click avec petit cercle), puis sélectionner les thèmes Mainfest sur le côté gauche, puis NoTitleBar.Plein écran.

j'Espère que ça aidera!

2
répondu 2014-09-16 08:19:33

Si vous utilisez AppCompat, déclarez votre activité dans AndroidManifest.xml:

<activity
    android:name=".SomeActivity"
    ...
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
2
répondu atablash 2015-10-28 16:55:41

si vous voulez que la plupart de vos activités aient une barre d'action, vous hériterez probablement de votre thème de base de celui par défaut (celui-ci est généré automatiquement par Android Studio par défaut):

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

et ensuite ajouter un thème spécial pour votre activité sans barre:

<style name="AppTheme.NoTitle" parent="AppTheme">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="actionBarTheme">@null</item>
    </style>

Pour moi, la configuration de actionBarTheme @null était la solution.

Enfin, les réglages de l'activité dans votre fichier manifest:

<activity ... android:theme="@style/AppTheme.NoTitle" ... >
2
répondu Claude 2016-05-10 14:58:17

Open Manifest et add attribut theme = " @style / Theme.AppCompat.Lumière.NoActionBar" à l'activité que vous voulez sans actionbar :

<application
    ...
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        ...
    </activity>
</application>
0
répondu Mahmoud salah eldien saber 2018-09-07 19:21:20

Créer un nouveau Style avec n'importe quel nom, dans mon cas "Thème.Alerte.NoActionBar"

<style name="Theme.Alert.NoActionBar" parent="Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

définit son parent comme " thème.AppCompat.Dialog " comme dans le code ci-dessus

ouvrir AndoridManifest.xml et personnaliser l'activité que vous voulez afficher comme dialogue D'alerte comme ceci

    <activity
        android:excludeFromRecents="true"
        android:theme="@style/Theme.Alert.NoActionBar"
        android:name=".activities.UserLoginActivity" />

dans mon application, je veux afficher mon activité d'ouverture de session en tant que Dialogue D'Alerte, ce sont les codes que j'ai utilisés. espérons que cela fonctionne pour vous!!!

-1
répondu Karthick 2017-10-10 08:02:44