13

verwendete ich CollapsingToolbarLayout als Mutter von Toolbar, darunter das LayoutToolbar innerhalb CollapsingToolbarLayout, Toolbar Titel zeigt nicht

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/test_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:minHeight="?attr/actionBarSize" 
      app:navigationIcon="@drawable/abc_ic_ab_back_mtrl_am_alpha" 
      app:theme="@style/ThemeOverlay.AppCompat.Light" /> 

    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 

Dann will ich den Titel des Toolbar mit dem folgenden Code setzen, aber es hat nicht funktioniert. Der Titel wurde einfach nicht angezeigt.

Toolbar toolbar = (Toolbar) findViewById(R.id.test_toolbar); 
    setSupportActionBar(toolbar); 

    getSupportActionBar().setDisplayShowTitleEnabled(true); 
    getSupportActionBar().setTitle("ABC"); 

ich auch den Titel in CollapsingToolbarLayout mit dem folgenden Code festgelegt versucht, es entweder nicht funktioniert hat.

CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_layout); 
    collapsingToolbarLayout.setTitleEnabled(true); 
    collapsingToolbarLayout.setTitle("ABC"); 

Aber wenn ich CollapsingToolbarLayout von meinem Layout entfernt und AppBarLayout als direkte Elternteil Toolbar machen, über den Code, um den Titel des Toolbar gearbeitet einzustellen.

Habe ich etwas verpasst? Dieses Problem ist so seltsam. Ist es ein Fehler in der Design-Support-Bibliothek? Wie kann ich es lösen, ohne mein Layout zu ändern?

+0

Try 'android: fitsSystemWindows = "true"' auf 'CoordinatorLayout',' AppBarLayout' und 'CollapsingToolbarLayout'. –

+0

@ FarbodSalamat-Zadeh Vielen Dank für Ihre Antwort. Es hat nicht funktioniert, nachdem ich versucht habe, wie du gesagt hast. – alijandro

+2

irgendwelche Updates zu diesem Thema? Mit dem gleichen Problem hier !! – Shatazone

Antwort

5

Dies ist eine temporäre Lösung. Ich habe den Code nicht gründlich untersucht, aber durch Deaktivieren der Aktualisierung von Toolbar in CollapsingToolbarLayout funktionierte es.
Hier ist, was ich getan habe: Einstürzen Toolbar 'titleEnabled = false' in xml

public static void setRefreshToolbarEnable(CollapsingToolbarLayout collapsingToolbarLayout, 
              boolean refreshToolbarEnable) { 
    try { 
     Field field = CollapsingToolbarLayout.class.getDeclaredField("mRefreshToolbar"); 
     field.setAccessible(true); 
     field.setBoolean(collapsingToolbarLayout, refreshToolbarEnable); 
    } catch (NoSuchFieldException e) { 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } 
} 
+1

Haben Sie dafür eine dauerhafte Lösung gefunden? Ich benutze dies derzeit, aber ich weiß nicht, ob dies zuverlässig – Bhargav

+0

Nicht sicher, warum, aber das funktioniert, gut genug, bis jetzt kann ich nicht wirklich einen anderen Weg finden, es zu tun. – Lancelot

+0

Das soll funktionieren! Sehr gut. Tatsächlich gab es bereits Bugs eingereicht: https://code.google.com/p/android/issues/detail?can=2&q=183333&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&id=183333 I Finden Sie diese Antwort zu den Antworten auf diese Pfosten: http://stackoverflow.com/questions/32073812/collapsingtoolbarlayout-settitle-not-working-anymore | http://StackOverflow.com/Questions/30682548/collapsingtoolbarlayout-settitle-does-not-update-unless-collapsed –

0

Verschieben

CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_layout); 
collapsingToolbarLayout.setTitleEnabled(true); 
collapsingToolbarLayout.setTitle("ABC"); 

von onCreate innen wenn

+0

warum beide von Ihnen hat einen gleichen Namen? –

+0

Das hat bei mir nicht funktioniert. – fobbymaster

1

einfach auf onCreateView Dann wird Toolbar Titel angezeigt .

app:titleEnabled="false" 
0

versuchen Sie dies:

collapsingToolbarLayout.setTitleEnabled(false); 
toolbar.setTitle("ABC"); 
+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/17863068) –

Verwandte Themen