13

Ben, bunun altındaki düzenÇubuğu CollapsingToolbarLayout içinde Çubuğu başlık gösterilmiyor

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

Sonra aşağıdaki kodla Toolbar başlığını ayarlamak istiyorum, Toolbar ebeveyni olarak CollapsingToolbarLayout kullanılan ama işe yaramadı. Başlık sadece göstermedi.

Ben de aşağıdaki kodla CollapsingToolbarLayout başlığı ayarlamak çalıştı
Toolbar toolbar = (Toolbar) findViewById(R.id.test_toolbar); 
    setSupportActionBar(toolbar); 

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

, bu da işe yaramadı.

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

Ama benim düzenden CollapsingToolbarLayout çıkarılır ve Toolbar doğrudan ebeveyn olarak AppBarLayout yaparsanız, yukarıdaki kod Toolbar başlığını ayarlamak için çalıştı.

birşey kaçırdım mı? Bu konu çok tuhaf. Tasarım destek kitaplığında bir hata mı? Düzenimi değiştirmeden nasıl çözebilirim?

+0

deneyin 'android: fitsSystemWindows = "true"' senin 'CoordinatorLayout',' AppBarLayout' ve 'CollapsingToolbarLayout' üzerinde. –

+0

@ FarbodSalamat-Zadeh Cevabınız için teşekkür ederiz. Dediğin gibi çalıştıktan sonra işe yaramadı. – alijandro

+2

bu konuda herhangi bir güncelleme var mı? Burada aynı sorunu karşı karşıya! – Shatazone

cevap

5

Bu geçici bir çözümdür. Kodu derinlemesine incelemedim, ancak Toolbar'un CollapsingToolbarLayout'daki yenilemesini devre dışı bırakarak işe yaradı.
İşte ne yaptım: içeride ise

+1

Bunun için kalıcı bir çözüm buldunuz mu? Bunu şu anda kullanıyorum ama bu güvenilir – Bhargav

+0

bilmiyorum, neden bu işe yaramazsa emin değilim, şu ana kadar bunu yapmak için başka bir yol bulamıyorum. – Lancelot

+0

Bu işe yarıyor! Çok iyi. Aslında orada zaten hatalar vardı: https://code.google.com/p/android/issues/detail?can=2&q=183333&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&id=183333 I Bu cevaplarda verilen cevaplarla ilgili bu cevabı bulabilirsiniz: http://stackoverflow.com/questions/32073812/collapsingtoolbarlayout-settitle-not-working-anymore | http://stackoverflow.com/questions/30682548/collapsingtoolbarlayout-settitle-does-not-update-unless-collapsed –

0

Taşı

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

.

app:titleEnabled="false" 
+0

Her ikinizin de neden aynı ismi var? –

+0

Bu benim için çalışmadı. – fobbymaster

1

Basitçe xml 'titleEnabled = false' araç çubuğunu Collapsing set Sonra Çubuğu başlık görünecektir onCreateView için onCreate dan

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(); 
    } 
} 
0

bu deneyin:

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

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum yazıla] (/ review/düşük kaliteli yazılar/17863068) –