2015-06-25 10 views
14

Gibt es eine Möglichkeit, die Schriftart für eine CollapsingToolbarLayout festzulegen? Ich verwende Kalligraphie, aber meine Standardschrift wird nicht angewendet.Schriftart für CollapsingToolbarLayout

Ich denke, das Problem ist die CollapsingTextHelper Klasse verwendet Canvas.drawText() anstelle von TextView.

Wie kann ich die Standardschrift ändern, die für Canvas.drawText() verwendet wird?

+2

Sie müssen Reflection verwenden. [Ich habe beschrieben, wie man es mit dem 'TextInputLayout' macht (http://stackoverflow.com/a/30767869/420015), aber die Schritte sollten für das 'CollapsingToolbarLayout' gleich sein. – adneal

+1

Das hat funktioniert. Danke – lukas1994

+0

@ lukas1994 kannst du deine Quelle angeben? –

Antwort

1

Sie können den Text Aussehen des Titels eines CollapsingToolbarLayout wie folgt ändern:

1) Stellen Sie sicher, dass Sie compile 'com.android.support:design:22.2.1' in Ihrem build.gradle Abhängigkeiten verwenden.

2) Verwenden Sie expandedTitleTextAppearance wie folgt aus:

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

3) Definieren Sie die HeaderTitleStyle in Ihre Stile Datei:

<style name="HeaderTitleStyle" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:textSize">20sp</item> 
</style> 
+5

Wie beantwortet das die ursprüngliche Frage, über die Einstellung einer benutzerdefinierten Schriftart? – gnuf

+0

Dies hilft nicht bei der Einstellung benutzerdefinierter Schriftart – sziraqui

14

Da eine der neuesten API-Updates hat der Support-Design-Paket aktualisiert und jetzt ist es möglich, die Schriftart des kollabierenden Titeltextes einzustellen.

Verwenden Sie setCollapsedTitleTypeFace(Typeface typeface) und setExpandedTitleTypeFace(Typeface typeface), um Ihre benutzerdefinierte Schriftart festzulegen.

+1

Hat jemand dies funktioniert? Es scheint, als würde es nichts tun. –

+0

Arbeitete für mich, danke! Sie müssen mit 'TypefaceUtils.load()' von calygraphy eine Schriftart für diesen ... – dimsuz

0

Es ist möglich. In der Tat unterscheidet sich die Schriftart des Titels, wenn er minimiert wird, standardmäßig von der nicht vorhandenen Schriftart.

um Also, das zum Beispiel ändern zu können, als solche tun:

Arten

<style name="TextAppearance.Collapsed" 
    parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:fontFamily">sans-serif</item> 
</style> 

Layout-Datei

<android.support.design.widget.CollapsingToolbarLayout 
    app:collapsedTitleTextAppearance="@style/TextAppearance.Collapsed"> 
    ... 
</android.support.design.widget.CollapsingToolbarLayout> 

ähnliche Sache kann Datei für den Stil gemacht werden, wenn es nicht reduziert ist ("expandedTitleTextAppearance").

Verwandte Themen