2016-11-23 3 views
2

Wie können wir den Untertitel der Symbolleiste korrekt entfernen und den Titel wieder einfügen?Symbolleisten-Untertitel entfernen

Dadurch getSupportActionBar().setSubtitle(null); nur den Text entfernt, aber der Titel bleibt in der Spitze, this image represents the behaviour.

Ich habe auch versucht, dies als Versuch, es zu aktualisieren, aber hat nicht funktioniert als gut:

getSupportActionBar().setSubtitle(null); 
getSupportActionBar().setDisplayShowTitleEnabled(false); 
getSupportActionBar().setDisplayShowTitleEnabled(true); 

XML-Code:

<android.support.v7.widget.Toolbar 
    android:id="@+id/settingsToolbar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/toolbar_height" 
    android:paddingTop="@dimen/toolbar_padding" 
    android:minHeight="@dimen/toolbar_min_height" 
    android:background="@color/colorPrimary" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:animateLayoutChanges="true"/> 

Einstellung der Werkzeugleiste oben:

Toolbar toolbar = (Toolbar)findViewById(R.id.settingsToolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle("Settings"); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Dies ist kein Duplikat von this question, da die akzeptierte Antwort es nicht löst.

+0

Lösung mit "null" funktioniert gut für mich. Kannst du mehr Informationen posten? Code/Symbolleiste xml. –

+0

Siehe bitte bearbeiten – afellowcoder

+0

Einstellung getSupportActionBar(). SetSubtitle (null); funktioniert auch gut für mich. – Tasneem

Antwort

0

Das Problem ist in android:animateLayoutChanges="true"

Wenn Sie entfernen, dass es funktioniert, aber es wird die hübsche Animation nicht haben, jetzt habe ich für diese angesiedelt:

public void changeSubtitle(@Nullable String subtitle) { 

    if (subtitle == null) { 
     toolbar.setLayoutTransition(null); 
     getSupportActionBar().setSubtitle(null); 
    } else { 
     toolbar.setLayoutTransition(new LayoutTransition()); 
     getSupportActionBar().setSubtitle(subtitle); 
    } 
} 

Es beseelt beim Hinzufügen der Untertitel, aber nicht beim Entfernen.

1

Genau dies tun:

toolbar.setSubtitle(null); toolbar.setLayoutTransition(new LayoutTransition());