2016-04-14 5 views
2

Ich habe eine Symbolleiste (Android.support.v7.widget.Toolbar) in android.support.design.widget.CollapsingToolbarLayout und ich möchte die Schriftgröße der Symbolleiste Titel ändern. Ich habe app: titleTextAppearance und einige ältere Vorschläge versucht, aber sie funktionieren nicht. Mein Code ist wie unten.Ändern Sie die Schriftgröße der Symbolleiste Titel in CollapsingToolbarLayout in Android

<android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/toolbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/route_detail_image" 
      android:src="@drawable/default_image" 
      android:scaleType="centerCrop" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="90dip" 
      android:layout_gravity="bottom" 
      android:padding="10dip" 
      android:background="@color/trans_black"/> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:elevation="20dp" 
      app:titleTextAppearance="@style/route_title" 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 
    </android.support.design.widget.CollapsingToolbarLayout> 

in meinem style.xml

<style name="route_title" parent="android:Widget.TextView"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:color">#ffff0000</item> 
</style> 

innen .JAVA

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle(route_name); 

Antwort

2

Versuchen Sie, diese thread bezieht. Es zeigt dort, wie man die Schriftart (und Größe) des Titels eines Collapsing Toolbar Layout ändert.

+0

Dank. Es klappt. Die Verbindung, die du gabst, hatte einen anderen Link. https://code.google.com/p/android/issues/detail?id=175808#c7 –

+0

ja ... mit Reflektion ... –

1

Ich glaube, Sie dies benötigen:

try 
{ 
    final Field field = collapsingToolbarLayout.getClass().getDeclaredField("mCollapsingTextHelper"); 
    field.setAccessible(true); 

    final Object object = field.get(collapsingToolbarLayout); 
    final Field tpf = object.getClass().getDeclaredField("mTextPaint"); 
    tpf.setAccessible(true); 

    ((TextPaint) tpf.get(object)).setTextSize(getResources().getDimension(R.dimen.textsize)); 
} 
catch (Exception ex) { 
} 
+0

funktioniert nicht. und es scheint nichts mit Symbolleistentitel zu tun. –

0

Sie ein benutzerdefiniertes Layout auf die Toolbar mit Größe festlegen können Sie mit addView() wollen

+0

Ich habe das auch versucht. In diesem Fall verschwindet die TextView beim Minimieren. es funktioniert nicht wie es soll. –

+0

verwenden Sie die Symbolleiste als Aktion oder eigenständige Symbolleiste? –

+0

Ich habe meine Antwort bekommen. Danke für Ihre Bemühungen. –

2

Got Antwort von this link

mCollapsingToolbarLayout.setTitle(getTitle()); 
mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar); 
mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar); 


<style name="ExpandedAppBar" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textSize">28sp</item> 
    <item name="android:textColor">#000</item> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textSize">24sp</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textStyle">normal</item> 
</style> 

<style name="ExpandedAppBarPlus1" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textSize">28.5sp</item> 
    <item name="android:textColor">#000</item> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="CollapsedAppBarPlus1" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textSize">24.5sp</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textStyle">normal</item> 
</style> 
Verwandte Themen