Entfernen Sie den Titel in der Symbolleiste in appcompat-v7


170

Die Dokumentation von Toolbarsagt

Wenn eine App ein Logo verwendet, sollte unbedingt ein Titel und ein Untertitel weggelassen werden.

Was ist der richtige Weg, um den Titel zu entfernen?


Wo liegt das Problem, wenn Sie nur eine leere Zeichenfolge festlegen? Ich glaube nicht, dass Sie ein benutzerdefiniertes Layout verwenden müssen, das nur ein Symbol verwendet. Vermutlich ist das übertrieben?
Wagner Michael

3
@maffelbaffel Es ist nichts Falsches daran, eine leere Zeichenfolge zu setzen, aber es fühlt sich falsch an. Aber ja, ein benutzerdefiniertes Layout zu verwenden, wäre übertrieben.
Timemanx

1
Ich musste tun:toolbar.setTitle("");
Ferran Maylinch

1
@ FerranMaylinch Ja, das ist auch Arbeit für mich! Ich benutze toolbar.setTitle (null); was zu einem Anwendungsnamen als Standardtitel führt. also setze ich toolbar.setTitle (""); welche funktionieren gut.
ULHAS PATIL

Antworten:


554
getSupportActionBar().setDisplayShowTitleEnabled(false);

4
Diese Antwort und die Antwort von David_E funktionieren wie von mir, wenn sie direkt nach dem Anruf angerufen werden setSupportActionBar(). Wählen Sie diese Antwort, da dies der offizielle Weg zu sein scheint, um dies gemäß der offiziellen Referenz zu tun:Set whether an activity title/subtitle should be displayed.
C0D3LIC1OU5

Ich bin nur für Symbolleisten wie Actionbar, aber nicht für saubere Toobar!
Ischariot

2
Wie entferne ich es mit style.xml? Bitte helfen Sie mir
Anand Savjani

Hat für mich gearbeitet. Sie müssen "appcompat_v7: v21" verwenden, damit dies funktioniert.
V_J

Sie müssen überprüfen, ob das oben Gesagte keine NullPonterException erzeugt, indem Sie Folgendes tun: if (getSupportActionBar ()! = null) getSupportActionBar (). setDisplayShowTitleEnabled (false);
iOSAndroidWindowsMobileAppsDev

68

Der richtige Weg, um den Symbolleisten-Titel auszublenden / zu ändern, ist folgender:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);

Dies liegt daran, dass beim Aufrufen setSupportActionBar(toolbar);der getSupportActionBar()Benutzer dafür verantwortlich ist, alles in der Aktionsleiste und nicht im Symbolleistenobjekt zu verarbeiten.

Siehe hier


9
setTitle (null) führt dazu, dass der App-Name zum Titel wird. setTitle ("") hat bei mir funktioniert.
user1354603

1
In XML habe ich <Toolbar app: title = "" // title ist ein Leerzeichen hinzugefügt. Arbeitete
Dan Alboteanu

21

Versuche dies...

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_landing_page); 

    .....

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_landing_page);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    .....

 }

19

Der Grund für meine Antwort darauf ist, dass die am besten bewertete Antwort selbst mein Problem nicht lösen konnte. Ich habe dieses Problem dadurch herausgefunden.

<activity android:name="NAME OF YOUR ACTIVITY"
    android:label="" />

Hoffe das wird auch anderen helfen.


2
Das ist keine gute Idee. Wenn Sie über eine <intent-filter>Aktivität verfügen , mit der Benutzer Ihre App durch Klicken auf eine URL öffnen können (z. B.), hat der Dialog zur Begriffsklärung keinen Titel!
Albert Vila Calvo

10

Eine andere Möglichkeit, den Titel aus Ihrem Titel zu entfernen, Toolbarbesteht darin, nullihn wie folgt zu entfernen :

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setTitle(null);

4

Dies

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    //toolbar.setNavigationIcon(R.drawable.ic_toolbar);
    toolbar.setTitle("");
    toolbar.setSubtitle("");
    //toolbar.setLogo(R.drawable.ic_toolbar);

3

Wenn Sie die Symbolleiste verwenden, versuchen Sie den folgenden Code:

toolbar.setTitle("");

2

Sie können einen der folgenden Werte verwenden, da beide auf die gleiche Weise funktionieren: getSupportActionBar().setDisplayShowTitleEnabled(false); und getSupportActionBar().setTitle(null);

Verwendungszweck:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

Oder :

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(null);

2
 Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
    actionBar.addView(view);
    setSupportActionBar(actionBar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

Beachten Sie diese Zeile getSupportActionBar().setDisplayShowTitleEnabled(false);


actionBar.addView (Ansicht); ist eine benutzerdefinierte Ansicht, die ich zur Symbolleiste hinzufüge
Suulisin

2

Fügen Sie dieses Attribut einfach Ihrer Symbolleiste hinzu

app:title=" "

1

Der richtige Weg, um Titel / Beschriftung der ToolBar die folgenden Codes zu verbergen:

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle(null);

1

Ich weiß nicht, ob dies der richtige Weg ist oder nicht, aber ich habe meinen Stil so geändert.

<style name="NoActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style>

1

Wenn Sie die Standardsymbolleiste verwenden, können Sie diese Codezeile hinzufügen

Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);

1

Es ist offensichtlich, aber die App ThemeAuswahl im Design dient nur zur Anzeige eines Entwurfs während der Layout-Ausgabe und hat nichts mit der realen App zu tun, die auf dem Handy aussieht. In meinem Fall gibt es keine Titelleiste im Design, aber die Titelleiste war immer im Handy.

Ich beginne mit der Android-Programmierung und kämpfe darum, eine richtige Lösung zu finden.

Nur die Manifestdatei ( AndroidManifest.xml) zu ändern, reicht nicht aus, da der Stil vordefiniert werden muss styles.xml. Auch ist es nutzlos, die Layoutdateien zu ändern.

Alle vorgeschlagenen Lösungen in Javaoder Kotlinsind für mich gescheitert. Einige von ihnen stürzen die App ab. Und wenn man (wie ich) nie vorhat, die Titelleiste in der App zu verwenden, ist die statische Lösung sauberer.

Für mich ist die einzige Lösung, die 2019 funktioniert (Android Studio 3.4.1):

styles.xmlFügen Sie in (unter app / res / values) die Zeilen hinzu:

   <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

Nach in AndroidManifest.xml(unter App / Manifeste)

Ersetzen

android:theme="@style/AppTheme">

durch

android:theme="@style/AppTheme.NoActionBar">

0

Niemand erwähnte:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
    }

Lesen Sie die Frage sorgfältig durch, bevor Sie sie beantworten. OP hat darum gebeten, den Titel aus der Symbolleiste zu entfernen
Bhavik Mehta


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.