2015-06-25 7 views
14

के लिए फ़ॉन्ट CollapsingToolbarLayout के लिए फ़ॉन्ट सेट करने का कोई तरीका है? मैं कैलिग्राफी का उपयोग कर रहा हूं लेकिन मेरा डिफ़ॉल्ट फ़ॉन्ट लागू नहीं है।CollapsingToolbarLayout

मुझे लगता है कि समस्या CollapsingTextHelper कक्षा TextView के बजाय Canvas.drawText() का उपयोग कर रही है।

मैं Canvas.drawText() के लिए उपयोग किए जाने वाले डिफ़ॉल्ट फ़ॉन्ट को कैसे बदल सकता हूं?

+2

आपको प्रतिबिंब का उपयोग करना होगा। [मैंने वर्णन किया कि इसे 'TextInputLayout'] (http://stackoverflow.com/a/30767869/420015) के साथ कैसे किया जाए, लेकिन' CollapsingToolbarLayout' के लिए चरण समान होना चाहिए। – adneal

+1

यह काम किया। धन्यवाद – lukas1994

+0

@ लुकास 1 9 4 9 क्या आप अपना स्रोत दे सकते हैं? –

उत्तर

1

आप इस प्रकार एक CollapsingToolbarLayout के शीर्षक का पाठ स्वरूप बदलने के कर सकते हैं:

1) सुनिश्चित करें कि आप अपने build.gradle निर्भरता में compile 'com.android.support:design:22.2.1' उपयोग कर रहे हैं।

2) इस तरह expandedTitleTextAppearance उपयोग:

<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) अपनी शैली में HeaderTitleStyle परिभाषित दायर:

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

कस्टम फ़ॉन्ट सेट करने के बारे में यह मूल प्रश्न का उत्तर कैसे देता है? – gnuf

+0

यह कस्टम फ़ॉन्ट – sziraqui

14

नवीनतम एपीआई अद्यतन में से एक के बाद से, समर्थन डिजाइन पैकेज अद्यतन किया गया है और अब ढहने वाले शीर्षक टेक्स्ट का फ़ॉन्ट सेट करना संभव है।

अपने कस्टम फ़ॉन्ट को सेट करने के लिए setCollapsedTitleTypeFace(Typeface typeface) और setExpandedTitleTypeFace(Typeface typeface) का उपयोग करें।

+1

सेट करने में मदद नहीं करता है क्या किसी को यह काम करने के लिए मिला है? ऐसा लगता है कि यह कुछ भी नहीं कर रहा है। –

+0

मेरे लिए काम किया, धन्यवाद! इसके लिए टाइपफ़ेस लोड करने के लिए आपको कैलिग्राफी के 'TypefaceUtils.load()' का उपयोग करने की आवश्यकता है ... – dimsuz

0

यह संभव है। असल में, डिफ़ॉल्ट रूप से, शीर्षक के फ़ॉन्ट को ध्वस्त होने पर एक से अलग होता है जब यह नहीं होता है।

तो, आदेश में इस परिवर्तन करने के लिए, उदाहरण के लिए, आप इस तरह के रूप में कर सकते हैं:

शैलियों फाइल

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

लेआउट फ़ाइल

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

इसी प्रकार के कर सकते हैं बात जब इसे ध्वस्त नहीं किया जाता है, तो शैली के लिए किया जाना चाहिए ("विस्तारितTitleTextAppearance")।

संबंधित मुद्दे