2015-04-24 9 views
10

के लिए काम नहीं कर रहा है, मुझे पता है कि स्पैन करने योग्य स्ट्रिंग एक टेक्स्टव्यू में अलग-अलग टेक्स्ट आकार सेट करना संभव है, लेकिन यदि टेक्स्टव्यू प्रोग्राम प्रोग्रामिक रूप से जोड़ा गया है तो यह काम नहीं कर रहा है।स्पैनब्लेस्ट्रिंग प्रोग्रामेटिक रूप से निर्मित बटन

String s = "Best Ever"; 
SpannableString ss1 = new SpannableString(s); 
ss1.setSpan(new RelativeSizeSpan(2f), 0, 4, 0); // set size 
ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, 0); // set color 
TextView tv = (TextView) findViewById(R.id.textview); 
tv.setText(ss1); 
+0

क्या एपीआई संस्करण? 5+? – pskink

+0

हाँ इसके 5 @pskink – Venky

+1

उन्होंने इसे v5 में बदल दिया, http://stackoverflow.com/questions/29007746/button-settext-with-spannable-dosent-work-for-android-5-0-lollipop – pskink

उत्तर

25

आप देख सकते हैं, यह केवल API21

दिलचस्प पर API17 लेकिन TextView पर काम करने के लिए बटन और TextView पर काम है! मैंने देखा कि एपीआई 21 पर बटन सभी कैप्स है .. इसलिए सभी कैप्स को हटा दें।

डिफ़ॉल्ट रूप से, सामग्री बटन सभी कैप्स में टेक्स्ट दिखाने के लिए स्टाइल किए जाते हैं। हालांकि, पूंजीकरण के लिए उपयोग किए गए AllCapsTransformationMethod में एक बग है जो इसे स्पैन करने योग्य डेटा को त्यागने का कारण बनती है।

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

कोड से

,

txt.setAllCaps(false); 

एक्सएमएल से,

<View 
    ... 
    android:textAllCaps="false" /> 
+2

धन्यवाद! मेरे सिर को धक्का देने वाला था! –

+0

मदद करने में खुशी :) –

+0

कृपया अपना उत्तर अपडेट करें क्योंकि कोई 'android: allCaps' विशेषता नहीं है। मैंने पाया है कि 'एंड्रॉइड: टेक्स्टअल कैप्स' सही है। –

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