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.
Wenn Sie Android:logo="..."
im <application>
-Tag Ihres AndroidManifest.xml
definiert haben, müssen Sie dieses Symbol verwenden, um das Symbol auszublenden:
<item name="logo">@Android:color/transparent</item>
<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 ).
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.
Wenn Sie nicht möchten, dass das Symbol eine bestimmte Aktivität aufweist.
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
Das hat bei mir funktioniert
getActionBar().setDisplayShowHomeEnabled(false);
Berufung
mActionBar.setDisplayHomeAsUpEnabled(true);
zusätzlich zu,
mActionBar.setDisplayShowHomeEnabled(false);
blendet das Logo aus, zeigt jedoch das Symbol Home As Up :)
Beachten Sie, dass:
<item name="Android:icon">@Android:color/transparent</item>
Macht auch Ihre Optionen transparent.
getActionBar().setIcon(Android.R.color.transparent);
Das hat bei mir funktioniert.
//disable application icon from ActionBar
getActionBar().setDisplayShowHomeEnabled(false);
//disable application name from ActionBar
getActionBar().setDisplayShowTitleEnabled(false);
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);
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.
Ich habe das benutzt und es hat für mich funktioniert.
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
gehen Sie zu Ihrem Manifest und finden Sie das Anwendungs-Tag
Android:icon="@Android:color/transparent"// simply add this on place of your icon
...........
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.)
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)
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>
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" />
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.