2016-11-30 41 views
5

TabLayout'un başlığını iki farklı metin boyutuna ayarlamak istiyorum. Aşağıda verilen görüntü gibi. Ya da bunu başarmak için başka bir yol! Ben SpannableString ile çalıştıkTabLayout'ta SpannableString'i kullanmak için herhangi bir yol var mı?

enter image description here

aşağıda vermek ister. Bu snippet, 5'e kadar olan döngüde!

SpannableString mSpannableString= new SpannableString(s); 
mSpannableString.setSpan(new RelativeSizeSpan(2f), 0,5, 0); // set size 
mSpannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);// set color 
mTabLayout.getTabAt(i).setText(mSpannableString); 

Ama CommonaSware tarafından setText belirtildiği gibi() zengin içeriği almıyor! onun TextView s için

+0

Belki de fromHtml() ile yapabilirsiniz –

+0

Html.fromHtml() kullanın veya çalışmazsa, sekme için özel bir düzen oluşturun. –

+0

@SahilMunjal Html.fromHtml() bununla da hayır şans! –

cevap

6

TabLayout 'ın varsayılan stil true ayarlı textAllCaps özelliğiyle bir TextAppearance kullanır. Bunun için dönüşüm yöntemi CharSequence düz String olarak işler, böylece Spannable bilgi kaybolur.

Bunu önlemek için, textAllCaps'u devre dışı bırakan TabLayout için bir stil oluşturabiliriz. Örneğin:

<style name="TabTextAppearance" parent="TextAppearance.Design.Tab"> 
    <item name="textAllCaps">false</item> 
</style> 

TabLayout üzerinde tabTextAppearance olarak bu ayarlama beklendiği gibi SpannableString çalışmasını sağlayacak. varsayılan olarak ayarlama sorunlu niteliği olmazdı çünkü

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:tabTextAppearance="@style/TabTextAppearance" /> 
sekmeleri için özel bir View kullanarak yorumlarda belirtildiği gibi

, burada başka bir seçenektir.

İlgili konular