it-swarm.com.de

Symbol/Logo von der Aktionsleiste auf Android entfernen

Ich habe versucht, eine Möglichkeit zu finden, das Symbol/Logo von der Aktionsleiste zu entfernen, aber das einzige, was ich nach einer Stunde SO, der Dokumentation von Android und Google gefunden habe, ist das Entfernen der Titelleiste. Das will ich nicht. Sie möchten nur das Symbol/Logo aus der Titelleiste entfernen.

Weiß jemand, wie man das schafft? Am liebsten würde ich das inXMLmachen.

144
Hrafn

Wenn Sie Android:logo="..." im <application>-Tag Ihres AndroidManifest.xml definiert haben, müssen Sie dieses Symbol verwenden, um das Symbol auszublenden:

vor-v11 thema

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

v11 und up thema

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

Durch die Verwendung dieser beiden Stile wurde das Aktionsleistensymbol auf einem 2.3- und 4.4-Gerät für mich ordnungsgemäß ausgeblendet (diese App verwendet AppCompat ).

57
Charles Madere

Fügen Sie den folgenden Code in Ihre Aktionsleistenformate ein:

<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: Ich verwende Actionbar Sherlock und das funktioniert gut.

228
Qiqi Abaziz

Wenn Sie nicht möchten, dass das Symbol eine bestimmte Aktivität aufweist.

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

Das hat bei mir funktioniert

getActionBar().setDisplayShowHomeEnabled(false);
47
Brune

Berufung 

mActionBar.setDisplayHomeAsUpEnabled(true);

zusätzlich zu,

mActionBar.setDisplayShowHomeEnabled(false);

blendet das Logo aus, zeigt jedoch das Symbol Home As Up :)

27
Atul O Holic

Beachten Sie, dass:

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

Macht auch Ihre Optionen transparent.

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

Das hat bei mir funktioniert.

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

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

Entfernen oder zeigen Sie den Titel mit:

getActionBar().setDisplayShowTitleEnabled(true);

Entfernen oder zeigen Sie das Logo mit: 

getActionBar().setDisplayUseLogoEnabled(false);

Alles entfernen:

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

sie können den folgenden Code auch in AndroidManifest.xml hinzufügen.

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

Es wird gut funktionieren.

Ich habe jedoch festgestellt, dass dies ein Problem darstellt, da das Startsymbol auch transparent wird.

Also habe ich benutzt:

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

und es hat gut funktioniert.

Wenn Sie jedoch mehr als eine Aktivität haben und das Symbol für eine Aktivität transparent machen möchten, funktioniert der vorherige Ansatz.

9
Sam

Ich habe das benutzt und es hat für mich funktioniert.

        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

gehen Sie zu Ihrem Manifest und finden Sie das Anwendungs-Tag

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

...........

1

Ich denke, die genaue Antwort lautet: für api 11 oder höher:

getActionBar().setDisplayShowHomeEnabled(false);

andernfalls:

getSupportActionBar().setDisplayShowHomeEnabled(false);

(weil es eine Unterstützungsbibliothek braucht.)

1
David

Keines der oben genannten funktioniert. 

Aber das hat den Trick: 

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

    setSupportActionBar(toolbar)
    toolbar.logo = null

(Symbol aus der Symbolleiste entfernt)

0
Dan Alboteanu

Die Antwort von Qiqi Abaziz ist in Ordnung, aber ich habe immer noch Mühe gehabt, mit dem Kompatibilitätspaket zu arbeiten und den Stil auf die richtigen Elemente anzuwenden. Auch der Transparenz-Hack ist nicht notwendig. Hier ist ein vollständiges Beispiel für Version 8 und höher:

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

Der schnellste Weg ist, die Manifest.xml zu ändern. Wenn Sie beispielsweise das Logo der Aktivität "Aktivität" entfernen und das Logo in anderen Aktivitäten belassen möchten, können Sie Folgendes tun:

<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

Gehen Sie in Ihr Manifest und suchen Sie Ihre Aktivität, und fügen Sie dann diesen Code hinzu:

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

über der Zeile verstecken Sie Ihre Actionbar.

Wenn Sie andere Funktionen benötigen, können Sie andere Optionen mit (CLR + SPC) anzeigen.

0
A.A