2016-04-14 4 views
2

У меня есть панель инструментов (android.support.v7.widget.Toolbar) внутри android.support.design.widget.CollapsingToolbarLayout, и я хочу изменить размер шрифта заголовка панели инструментов. Я пробовал приложение: titleTextAppearance и некоторые более старые предложения, но они не работают. мой код такой же резкий.Изменить размер шрифта заголовка панели инструментов в CollapsingToolbarLayout в 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> 

внутри моей style.xml

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

внутри .java

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

ответ

2

Try со ссылкой на эту thread. Здесь показано, как изменить шрифт (и размер) заголовка макета панели сворачивания.

+0

Спасибо. Оно работает. ссылка, которую вы дали, имела другую ссылку. https://code.google.com/p/android/issues/detail?id=175808#c7 –

+0

есть ... используя отражение ... –

1

Я думаю, что вам это нужно:

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

не работает. и, похоже, он ничего не делает с заголовком панели инструментов. –

0

Вы можете установить пользовательский макет в Toolbar с размером вы хотите с addView()

+0

Я тоже это пробовал. но в этом случае TextView исчезает при свертывании. он не работает, как это должно быть. –

+0

Вы используете панель инструментов как действие или отдельную панель инструментов? –

+0

Я получил свой ответ. Спасибо за ваши усилия. –

2

Got ответ от 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> 
Смежные вопросы