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.
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:
<item name="logo">@Android:color/transparent</item>
<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 ).
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.
Si vous ne voulez pas l'icône dans une activité particulière.
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
Cela a fonctionné pour moi
getActionBar().setDisplayShowHomeEnabled(false);
Appel
mActionBar.setDisplayHomeAsUpEnabled(true);
en plus de,
mActionBar.setDisplayShowHomeEnabled(false);
masquera le logo mais affichera l'icône Home As Up. :)
Soit conscient que:
<item name="Android:icon">@Android:color/transparent</item>
Fera également vos articles d'options transparents.
getActionBar().setIcon(Android.R.color.transparent);
Cela a fonctionné pour moi.
//disable application icon from ActionBar
getActionBar().setDisplayShowHomeEnabled(false);
//disable application name from ActionBar
getActionBar().setDisplayShowTitleEnabled(false);
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);
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.
Je l'ai utilisé et cela a fonctionné pour moi.
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
aller à votre manifeste et trouver la balise d'application
Android:icon="@Android:color/transparent"// simply add this on place of your icon
......__….
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.)
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)
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>
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" />
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).