Comment supprimer le texte du titre de l'ActionBar Android?

105

Je suis en train de parcourir le Holo.Lightthème et je n'arrive pas à trouver le style magique à remplacer pour supprimer le texte du titre qui apparaît brièvement lors du premier lancement de mon application.

Comment puis je faire ça?

Christopher Perry
la source

Réponses:

215

Essayer:

 getActionBar().setDisplayShowTitleEnabled(false);

Pour la version 7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);
Filippo Mazza
la source
22
vous verrez toujours le titre pendant le chargement de la barre d'action, ce qui n'est pas ce que vous voulez. la bonne solution est ce que m3n0R a suggéré.
numan salati
12
il doit être getSupportActionBar (). setDisplayShowTitleEnabled (false); pour v7. Sinon, il produira une exécution de pointeur nul
Amir
5
@numansalati Qui est m3n0R? J'ai cherché sur la page et je n'ai rien trouvé
ka3ak
Quand devrais-je appeler les méthodes? Je veux dire de quelle méthode (activité, fragment) faut-il l'appeler?
ka3ak
94

Je pense que c'est la bonne réponse:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>
cesards
la source
Et Android 4? Je n'utilise pas ActionBarSherlock donc il n'y a pas de ressource nommée Widget.Sherlock.Light.ActionBar.Solid.Inverse. Quel parent dois-je utiliser?
Alex Semeniuk
Thème Holo. Par défaut, vous pouvez étendre 3 thèmes holo.
cesards
Cela fonctionne pour cacher le titre lors du premier lancement. Dans une autre activité, l'appel de setTitle ne fonctionne pas. Existe-t-il un moyen de permuter les styles de barre d'action au moment de l'exécution?
speedynomads
définition du thème par défaut à l'exécution :)
cesards
@ domji84, Vous pouvez spécifier le thème de chaque activité dans le fichier manifeste.
ashishduh
63

Je suis très nouveau sur Android alors corrigez-moi si je me trompe, mais je pense que si vous décidez d'utiliser les onglets de navigation sur la barre d'action, ils ne semblaient pas complètement alignés à gauche car la couleur du texte du titre n'est que transparente et n'a pas t disparu.

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

travaillé pour moi.

sparknoob
la source
oui, vous vous trompez, pas d'onglets en question et pas de lumière holo dans votre réponse
miky
Pendant que j'essaye ceci, j'obtiens cette erreur, @android: style / Widget.Holo.ActionBar nécessite le niveau d'API 11 (le minimum actuel est 10).
jrhamza
Si je souhaite attribuer ce style à la barre d'actions d'une activité spécifique et non à toutes les activités de mon application. Comment puis-je le faire? où dois-je mettre la ligne «android: displayOptions»? dans Menu.xml? Dans AndroidMenifest.xml?
GyRo
43

Je l'ai. Vous devez remplacer

android:actionBarStyle

puis dans votre style personnalisé, vous devez remplacer

android:titleTextStyle

Voici un exemple.

Dans mon themes.xml:

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

Et dans mon styles.xml:

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>

<style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
</style>

Je ne sais pas pourquoi la définition de textSize à zéro n'a pas fonctionné (cela a réduit le texte, mais ne l'a pas fait disparaître), mais la définition de textColor sur transparent fonctionne.

Christopher Perry
la source
3
Oui, cela a aidé. Une idée pourquoi android:visibility=gonen'a aucun effet? Ou mieux encore, pourquoi setDisplayShowTitleEnabledaffiche toujours le texte du titre pendant le chargement de la barre?
Matthias
7
Utilisez <item name = "android: displayOptions"> useLogo | showHome </item> au lieu de définir la taille sur 0
Jerome VDL
23

Dans votre manifeste

<activity android:name=".ActivityHere"
     android:label="">
fromage facile
la source
33
Cela fonctionne, mais empêchera votre application d'apparaître dans le sélecteur "Applications récemment utilisées"
Rupert Bates
1
cela fait que l'application n'a pas de nom sur les applications téléphoniques / l'écran principal
Nimitack
13

Écrivez cette déclaration sous

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

si vous étendez AppCompactActivity, utilisez getSupportActionbar()si vous étendez une activité, getActionBar()sinon, cela peut donner

null pointer exception

l'utilisation de android:label=""in AndroidManifest.xml for activity fonctionne également, mais votre application n'apparaîtra pas dansRecently used apps

Manohar Reddy
la source
9

vous avez deux choix: d'

abord:

getActionBar().setDisplayShowTitleEnabled(false);

Si usign a getActionBar()produit une exception de pointeur nul, vous devez utiliser getSupportActionBar()

Second

getSupportActionBar().setTitle("your title");

ou

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();
Hamid
la source
6

j'utilise ce code dans le manifeste de l'application

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

mon fichier de logo est de 200 * 800 pixels et utilise ce code dans l'activité principale.java

getActionBar().setDisplayShowTitleEnabled(false);

cela fonctionnera correctement

Milaaaad
la source
6

J'ai essayé ça. CA aidera -

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

getSupportActionBar doit être appelé après setSupportActionBar, définissant ainsi la barre d'outils, sinon NullpointerException car il n'y a pas de barre d'outils définie. J'espère que cela t'aides

Kenobiwan
la source
5

Vous pouvez modifier le style appliqué à chaque activité, ou si vous souhaitez uniquement modifier le comportement d'une activité spécifique, vous pouvez essayer ceci:

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

Pour afficher le titre sur la barre d'actions, définissez les options d'affichage dans onCreate ()

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

Pour masquer le titre sur la barre d'action.

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

Détails ici .

Siqi Liu
la source
3

La seule chose qui a vraiment fonctionné pour moi a été d'ajouter:

<activity 
    android:name=".ActivityHere"
    android:label=""
>
ShiftlessAndreas
la source
bien était la "mauvaise" réponse, mais cela m'aide dans un cas similaire :)
Javier
1
Ne faites pas cela car cela plantera votre application lorsqu'elle sera réduite
jfcartier
3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

j'espère que cela aidera

MeshPadukka
la source
2

Utilisez le suivant:

requestWindowFeature(Window.FEATURE_NO_TITLE);
Vivek
la source
Vous ne pouvez pas faire cela si vous utilisez l'ActionBar. Si vous essayez de le faire, l'application plantera immédiatement à son ouverture.
Christopher Perry
@ChristopherPerry n'est pas vrai. vous pouvez l'utiliser pour supprimer la barre d'action dans le code, à condition de le faire avant d'appeler setContentView.
numan salati
cependant, cela supprime toute la barre d'action au lieu de juste son titre!
bofredo
2

Si vous ne souhaitez le faire que pour une activité et peut-être même dynamiquement, vous pouvez également utiliser

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);
Heiko Rupp
la source
1

comme solution de contournement, ajoutez simplement cette ligne au cas où vous auriez des actions / barres d'outils personnalisées

this.setTitle("");

dans votre activité

Mihsen
la source
1

Bien que tous ces éléments soient acceptables, si votre activité ne contient qu'une activité principale, vous pouvez modifier res\values\styles.xmlcomme suit:

<resources>

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

</resources>

J'ai mis à jour parentet ajouté la propriété .NoActionBar au thème Light de l' Create Blank Applicationassistant Android Studios .

eyoung100
la source
Cela désactivera toute la barre d'action et non seulement le titre. Et si vous souhaitez créer une barre d'action vide, vous devrez le faire pour chaque vue.
AlwaysConfused
1

Étend simplement votre fichier java AppCompatActivityet procédez comme suit:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");
Dur
la source
0

Dans votre page manifest.xml, vous pouvez donner une adresse à votre libellé d'activité. l'adresse est quelque part dans vos valeurs / strings.xml. alors vous pouvez changer la valeur de la balise dans le fichier xml en null.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>
Damoon
la source
0

Je suis nouveau sur Android, alors peut-être que je me trompe ... mais pour résoudre ce problème, nous ne pouvons pas simplement aller au manifeste et supprimer l'étiquette d'activité

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

A travaillé pour moi ...

Ebin Xavier José
la source
-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");
Joe Lewis
la source
3
@Matteo Bien que cela puisse fonctionner, c'est certainement sommaire et ce n'est pas la bonne façon de le faire. En fait, il ne supprime pas réellement le texte du titre, il le définit simplement sur "", de sorte que vous ne pouvez pas le voir.
user1234 le