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?

timemanx
quelle
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);
massaimara98
quelle
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

David_E
quelle
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);

    .....

 }
Silambarasan Poonguti
quelle
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.

Chandra Sekhar
quelle
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);
MrEngineer13
quelle
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);
younes
quelle
3

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

toolbar.setTitle("");
varotariya vajsi
quelle
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);
Crime_Master_GoGo
quelle
2
 Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
    actionBar.addView(view);
    setSupportActionBar(actionBar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

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

Suulisin
quelle
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=" "
Dyno Cris
quelle
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);
Hai Rom
quelle
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>
Goudam m
quelle
1

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

Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);
Krishna Mohan Singh
quelle
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">
Paulo Buchsbaum
quelle
0

Niemand erwähnte:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
    }
Andoctorey
quelle
Lesen Sie die Frage sorgfältig durch, bevor Sie sie beantworten. OP hat darum gebeten, den Titel aus der Symbolleiste zu entfernen
Bhavik Mehta
0

toolbar.setTitle(null);// entferne den Titel

user2167877
quelle
0
Toolbar toolbar = findViewById(R.id.myToolbar);
    toolbar.setTitle("");
Bacar Pereira
quelle