2016-11-30 8 views
5

두 개의 다른 텍스트 크기로 TabLayout의 제목을 설정하려고합니다. 아래 주어진 이미지와 같습니다. 또는 이것을 달성하기 위해 다른 방법! 내가 SpannableString으로 시도TabLayout에서 SpannableString을 사용할 방법이 있습니까?

enter image description here

아래주고 싶어요. 이 스 니펫은 for 루프에서 5까지입니다!

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); 

그러나 CommonaSware에 의해 의 setText을 언급 한 바와 같이() 풍부한 컨텐츠를 참가! 그 TextView들에 대한

+0

아마도 fromHtml() –

+0

으로 할 수 있습니다. Html.fromHtml()을 사용하거나 작동하지 않는 경우 탭의 사용자 정의 레이아웃을 만듭니다. –

+0

@SahilMunjal Html.fromHtml() 행운이 하나도 없습니다! –

답변

6

TabLayout의 기본 스타일은 true로 설정 textAllCaps 속성으로 TextAppearance를 사용합니다. 이 변환 방법은 CharSequenceString 플랫으로 처리하므로 Spannable 정보가 손실됩니다.

TabLayout의 스타일을 만들면 textAllCaps이 비활성화됩니다. 예를 들어 :

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

TabLayouttabTextAppearance으로이 설정 예상대로 SpannableString 작동 할 수 있습니다. 즉 기본적으로 설정 문제가있는 특성이없는 것이기 때문에

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:tabTextAppearance="@style/TabTextAppearance" /> 
탭에 대한 사용자 정의 View을 사용하여 댓글에서 언급 한 바와 같이

, 여기에 또 다른 옵션입니다.