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?

Réponses:


215

Essayer:

 getActionBar().setDisplayShowTitleEnabled(false);

Pour la version 7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

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>

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.


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.


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="">

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


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

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


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


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 .


3

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

<activity 
    android:name=".ActivityHere"
    android:label=""
>

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


2

Utilisez le suivant:

requestWindowFeature(Window.FEATURE_NO_TITLE);

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

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é


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 .


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

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>

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 ...


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.