2017-05-03 13 views
0

TabsLayout에서 선택된 탭과 선택 취소 된 탭에 대해 고유 textAppearance을 설정하는 방법을 아는 사람이 있습니까? documentation에는 전체 크기가 모두 tabTextAppearance이며, 선택한 탭에 대해 다른 색상을 설정하는 데는 tabSelectedTextColor 만 사용할 수 있습니다. 목표는 선택한 탭에서 다른 글꼴을 사용하는 것입니다.TabLayout에서 선택된 탭과 선택 취소 된 탭에 다른 textAppearance 설정

답변

1

당신은 OnTabSelectedListener 인터페이스의 onTabSelected에 그것을해야

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); 
      ViewGroup vgTab = (ViewGroup) vg.getChildAt(tab.getPosition()); 
      int tabChildsCount = vgTab.getChildCount(); 
      for (int i = 0; i < tabChildsCount; i++) { 
       View tabViewChild = vgTab.getChildAt(i); 
       if (tabViewChild instanceof TextView) { 
        ((TextView) tabViewChild).setTypeFace(TYPE_FACE); 
       } 
      } 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 
      ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); 
      ViewGroup vgTab = (ViewGroup) vg.getChildAt(tab.getPosition()); 
      int tabChildsCount = vgTab.getChildCount(); 
      for (int i = 0; i < tabChildsCount; i++) { 
       View tabViewChild = vgTab.getChildAt(i); 
       if (tabViewChild instanceof TextView) { 
        ((TextView) tabViewChild).setTypeFace(TYPE_FACE); 
       } 
      } 
     } 
}