13

ho usato CollapsingToolbarLayout come il genitore di Toolbar, sotto di essa il layoutToolbar all'interno CollapsingToolbarLayout, Toolbar titolo non mostrando

<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> 

Poi voglio impostare il titolo del Toolbar con il seguente codice, ma non ha funzionato. Il titolo non è stato mostrato.

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

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

Ho anche provato a impostare il documento nella CollapsingToolbarLayout con il seguente codice, non ha funzionato neanche.

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

Ma se ho rimosso CollapsingToolbarLayout dal mio layout e fare AppBarLayout come controllante diretta di Toolbar, il codice di cui sopra per impostare il titolo di Toolbar lavorato.

Mi sono perso qualcosa? Questo problema è così strano. È un bug nella libreria di supporto del design? Come posso risolverlo senza modificare il mio layout?

+0

Try 'Android: fitsSystemWindows = "true"' 'sul vostro CoordinatorLayout',' 'AppBarLayout' e CollapsingToolbarLayout'. –

+0

@ FarbodSalamat-Zadeh Grazie per la risposta. Non ha funzionato dopo che ho provato come hai detto tu. – alijandro

+2

eventuali aggiornamenti su questo? Affrontare lo stesso problema qui !! – Shatazone

risposta

5

Questa è una soluzione temporanea. Non ho analizzato il codice profondamente, ma disabilitando l'aggiornamento di Toolbar in CollapsingToolbarLayout, ha funzionato.
Ecco quello che ho fatto:

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

Hai trovato una soluzione definitiva per questo? Sto usando questo al momento, ma non so se questo affidabile – Bhargav

+0

Non so perché, ma questo funziona, abbastanza buono finora non riesco davvero a trovare un altro modo di farlo. – Lancelot

+0

Questo supponiamo di funzionare! Molto bene. In realtà ci sono già bug registrati: https://code.google.com/p/android/issues/detail?can=2&q=183333&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&id=183333 I trova questa risposta correlata alle risposte su questi post: http://stackoverflow.com/questions/32073812/collapsingtoolbarlayout-settitle-not-working-anymore | http://stackoverflow.com/questions/30682548/collapsingtoolbarlayout-settitle-does-not-update-unless-collapsed –

0

Spostare

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

da onCreate a onCreateView all'interno se

+0

perché entrambi avete lo stesso nome? –

+0

Questo non ha funzionato per me. – fobbymaster

1

Basta impostare Crollare toolbar 'titleEnabled = false' in xml Poi Toolbar titolo verranno visualizzati .

app:titleEnabled="false" 
0

provare questo:

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

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - [Dalla recensione] (/ recensione/post di bassa qualità/17863068) –

Problemi correlati