2017-05-09 1 views
2

J'ai la disposition suivante dans mon application:barre d'outils couleur texte du titre

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    app:expanded="false"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:expandedTitleMarginEnd="64dp" 
     app:expandedTitleMarginStart="48dp" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <ImageView 
      android:id="@+id/header_image" 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      android:contentDescription="@string/app_name" 
      android:fitsSystemWindows="true" 
      app:layout_collapseMode="parallax" /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin"> 

     </android.support.v7.widget.Toolbar> 

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

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

thème d'application également est le suivant

<style name="Theme.MyApp" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/accent</item> 
    <item name="android:windowIsTranslucent">true</item> 
</style> 

Là où les couleurs sont:

<color name="primary">#5677fc</color> 
<color name="primary_dark">#303f9f</color> 
<color name="accent">#e040fb</color> 

Pour définir le titre J'utilise

CollapsingToolbarLayout collapsingToolbar; 
... 
collapsingToolbar.setTitle(title); 

Titre montré noir, je ce qu'il blanc. Comment puis-je le faire?

La définition de app:titleTextColor="@android:color/white" à Toolbar et toolbar.setTitleTextColor(0xffffff); n'aide pas.

Répondre

0

Je pense que vous devriez utiliser setCollapsedTitleTextColor():

collapsingToolbar.setCollapsedTitleTextColor(0xffffff); 

BTW, votre header_image pourrait prendre toute la largeur de l'écran et cacher le titre comme il l'a (peut-être il devrait être wrap_content):

android:layout_width="match_parent" 
+0

Lorsque je fais cela, le titre n'est pas affiché. – Alexey

+0

Quel système d'exploitation utilisez-vous et quelle est votre version de compileSdk? –

+0

J'ai testé sur simulateur Genymotion avec Android 4.4.4 et un appareil réel avec Android 5.1 - les deux le même résultat. minSdkVersion = 16, targetSdkVersion = 24. – Alexey

2

Essayez cette

Créer un style

<style name="collapsingToolbarLayoutTitleColor" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textSize">18sp</item> 
    <item name="android:textColor">@color/white</item> 
</style> 

Ensuite, ajoutez le style sur votre CollapsingToolbarLayout lorsqu'il est réduit et développé.

mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.collapsingToolbarLayoutTitleColor); 
mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.collapsingToolbarLayoutTitleColor); 
+0

Cela fonctionne, merci! – Alexey

+0

Est-il possible setExpandedTitleTextAppearance et setCollapsedTitleTextAppearance via le thème de l'application, pas par programmation? – Alexey