web-dev-qa-db-fra.com

Supprimer l'icône/le logo de la barre d'action sur Android

J'ai essayé de trouver un moyen de supprimer l'icône/le logo de la barre d'action, mais la seule chose que j'ai trouvée après une heure de recherche de SO, de la documentation d'Android et de Google, c'est comment supprimer la barre de titre en entier. Ce n'est pas ce que je veux. Je veux seulement enlever l'icône/le logo de la barre de titre.

Quelqu'un sait comment accomplir cela? De préférence, je voudrais faire ceci dansXML.

144
Hrafn

Si vous avez défini Android:logo="..." dans la balise <application> de votre AndroidManifest.xml, vous devez utiliser ces éléments pour masquer l'icône:

thème pré-v11

<item name="logo">@Android:color/transparent</item>

thème v11 et plus

<item name="Android:logo">@Android:color/transparent</item>

L'utilisation de ces deux styles a correctement masqué l'icône de la barre d'actions sur les périphériques 2.3 et 4.4 (cette application utilise AppCompat ).

57
Charles Madere

Ajoutez le code suivant dans vos styles de barre d’action:

<item name="Android:displayOptions">showHome|homeAsUp|showTitle</item>
<item name="displayOptions">showHome|homeAsUp|showTitle</item>
<item name="Android:icon">@Android:color/transparent</item> <!-- This does the magic! -->

PS: J'utilise Actionbar Sherlock et cela fonctionne très bien.

228
Qiqi Abaziz

Si vous ne voulez pas l'icône dans une activité particulière.

getActionBar().setIcon(
   new ColorDrawable(getResources().getColor(Android.R.color.transparent)));    
114
Laksh

Cela a fonctionné pour moi

getActionBar().setDisplayShowHomeEnabled(false);
47
Brune

Appel 

mActionBar.setDisplayHomeAsUpEnabled(true);

en plus de,

mActionBar.setDisplayShowHomeEnabled(false);

masquera le logo mais affichera l'icône Home As Up. :)

27
Atul O Holic

Soit conscient que:

<item name="Android:icon">@Android:color/transparent</item>

Fera également vos articles d'options transparents.

15
Tevlon
getActionBar().setIcon(Android.R.color.transparent);

Cela a fonctionné pour moi.

12
dn_c
    //disable application icon from ActionBar
    getActionBar().setDisplayShowHomeEnabled(false);

    //disable application name from ActionBar
    getActionBar().setDisplayShowTitleEnabled(false);
11
Pawel Miechowiecki

Supprimer ou afficher le titre en utilisant:

getActionBar().setDisplayShowTitleEnabled(true);

Supprimer ou afficher le logo en utilisant: 

getActionBar().setDisplayUseLogoEnabled(false);

Enlever tout:

getActionBar().setDisplayShowHomeEnabled(false);
10
Tiago Gouvêa

vous pouvez également ajouter le code ci-dessous dans AndroidManifest.xml .

Android:icon="@Android:color/transparent"

Cela fonctionnera bien.

Mais j'ai trouvé que cela posait un problème car l'icône du lanceur devenait également transparente.

Alors j'ai utilisé:

getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));

et cela a bien fonctionné.

Mais si vous avez plus d'une activité et souhaitez rendre l'icône d'une activité transparente, l'approche précédente fonctionnera.

9
Sam

Je l'ai utilisé et cela a fonctionné pour moi.

        getActionBar().setIcon(
        new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
2
user2900761
getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
2
user3748515

aller à votre manifeste et trouver la balise d'application

  Android:icon="@Android:color/transparent"// simply add this on place of your icon

......__….

1

Je pense que la réponse exacte est la suivante: pour api 11 ou supérieur:

getActionBar().setDisplayShowHomeEnabled(false);

autrement:

getSupportActionBar().setDisplayShowHomeEnabled(false);

(car il a besoin d'une bibliothèque de support.)

1
David

Aucun de ce qui précède n'a fonctionné. 

Mais cela a fait le tour: 

override fun onCreate() {
    setContentView(R.layout.activity_main)

    setSupportActionBar(toolbar)
    toolbar.logo = null

(icône supprimée de la barre d'outils)

0
Dan Alboteanu

La réponse de Qiqi Abaziz est correcte, mais j'ai longtemps lutté pour qu'elle fonctionne avec le pack de compatibilité et pour appliquer le style aux éléments appropriés. En outre, le hack de transparence est inutile. Voici donc un exemple complet pour la v8 et les versions ultérieures:

values ​​\ styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyActivityTheme" parent="@style/Theme.AppCompat">
        <item name="actionBarStyle">@style/NoLogoActionBar</item> <!-- pre-v11-compatibility -->
        <item name="Android:actionBarStyle">@style/NoLogoActionBar</item>
    </style>
    <style name="NoLogoActionBar" parent="@style/Widget.AppCompat.ActionBar">
        <item name="displayOptions">showHome</item> <!-- pre-v11-compatibility -->
        <item name="Android:displayOptions">showHome</item>
    </style>
</resources>

AndroidManifest.xml (Shell) 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android">   
    <uses-sdk Android:minSdkVersion="8" Android:targetSdkVersion="19"/>
    <application Android:theme="@Android:style/Theme.Light.NoTitleBar">
        <activity Android:theme="@style/PentActivityTheme"/>
    </application>
</manifest>
0
Nilzor

Le moyen le plus rapide est de modifier votre fichier Manifest.xml . Si, par exemple, vous souhaitez supprimer le logo de l'activité "Activité" et le laisser dans d'autres activités, vous pouvez procéder comme suit:

<activity
      Android:name=".home.XActivity"
      Android:logo="@Android:color/transparent"
      Android:configChanges="orientation|keyboardHidden" />
 <activity
      Android:name=".home.HomeActivity"
      Android:configChanges="orientation|keyboardHidden" />
0
Jordi Alonso

Allez dans votre manifeste et trouvez le votre activité puis ajoutez ce code:

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

au-dessus de la ligne, masquez votre Actionbar.

Si vous avez besoin d'une autre fonctionnalité, vous pouvez voir d'autres options avec (CLR + SPC).

0
A.A