J'ai différents Activities
dans mon application et dans chacun d'eux, je ne veux pas le Action Bar
. Je ne trouve pas comment le désactiver. J'ai essayé de trouver un attribut pour l'appliquer au main_activity.xml
mais jusqu'à présent, je n'ai rien trouvé. quelqu'un peut m'aider s'il vous plait?
Haha, je suis coincé à ce moment-là aussi, alors je suis heureux de pouvoir vous aider avec une solution, cela a au moins fonctionné pour moi :)
Ce que vous voulez faire, c'est définir un nouveau style dans values / styles.xml afin 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 le thème de votre application dans le fichier AndroidManifest.xml afin 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 aide, sinon, faites le moi savoir.
Il y a plusieurs façons de le faire.
Sous l'élément Application, vous trouverez une balise de thème. Remplacez-le par celui-ci -
Android:theme="@Android:style/Theme.NoTitleBar"
Si vous utilisez AppCompat, utilisez @Android:style/Theme.AppCompat.NoActionBar
.
Cela définira le thème de toutes les activités. Si vous n'avez pas besoin de la barre d'action dans une activité spécifique, définissez le thème dans le conteneur d'activités, c.-à-d.
<activity Android:theme="@Android:style/Theme.NoTitleBar" ...>
Vous pouvez également définir le thème Android:theme="@Android:style/Theme.NoTitleBar"
dans les styles et l’utiliser ultérieurement.
Ajoutez ceci dans 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>
puis définissez-le comme thème de votre activité dans Manifest:
<activity Android:theme="@style/NoActionBar" ... />
Placez ce code dans la méthode onCreate
avant de définir l'affichage du contenu -
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
Si vous utilisez la bibliothèque de support, utilisez getSupportActionBar()
.
Considérant que tout le monde publie d'anciennes manières de masquer le ActionBar, voici la manière appropriée de l'implémenter dans les styles de la bibliothèque de support AppCompat. Ce que je suggère fortement d'aller vers si vous ne l'avez pas déjà fait.
Enlever simplement la barre d'action
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>
Si vous utilisez les bibliothèques de support appcompat, il s'agit du moyen le plus simple et le plus recommandé de masquer l'ActionBar pour passer en plein écran ou pour commencer à implémenter la barre d'outils dans vos mises en page.
<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 pour 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 remarque: votre classe d'activité doit étendre AppCompatActivity
public class MainActivity extends AppCompatActivity {
<!--Activity Items -->
}
Si vous utilisez AppCompat
, déclarez votre activité dans AndroidManifest.xml
comme suit:
<activity
Android:name=".SomeActivity"
...
Android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
Vous pouvez également modifier l'héritage d'ActionBarActivity en Activité tel qu'il est écrit ici .
METTRE À JOUR
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);
}
ouvrez Manifest et ajoutez l'attribut theme = "@ style/Theme.AppCompat.Light.NoActionBar" à l'activité de votre choix sans barre d'action:
<application
...
Android:theme="@style/AppTheme">
<activity Android:name=".MainActivity"
Android:theme="@style/Theme.AppCompat.Light.NoActionBar">
...
</activity>
</application>
Je vais essayer de le montrer aussi simple que possible:
DÉCLARER L'ACTIVITÉ À L'ÉCRAN COMPLET DANS LE 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 le concepteur et sélectionnez le thème (au-dessus du téléphone mobile dans le bouton du concepteur avec un petit cercle), puis sélectionnez Thèmes Mainfest sur le côté gauche et puis NoTitleBar.Fullscreen.
J'espère que ça va aider!
Si vous souhaitez que la plupart de vos activités comportent une barre d'actions, vous héritez probablement de votre thème de base du thème par défaut (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>
Ajoutez ensuite 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, régler actionBarTheme sur @null était la solution.
Enfin, configurez l’activité dans votre fichier manifeste:
<activity ... Android:theme="@style/AppTheme.NoTitle" ... >
Le style par défaut que vous obtenez dans res/value/style.xml, comme
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Et juste le dessous comme dans votre balise d'activité,
Android:theme="@style/AppTheme.NoActionBar"
Veuillez trouver le thème par défaut dans styles.xml
<!-- 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 changer le parent de cette façon
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">