2017-05-03 5 views
0

で選択したタブと選択していないタブに対して異なるtextAppearanceを設定する方法を知っていますか? documentationには、すべてtabTextAppearanceという1つのサイズのアトリビュートが記載されており、tabSelectedTextColorを使用して、選択したタブに異なる色を設定することのみが許可されています。 私の目標は、選択したタブで別のフォントフェイスを使用することです。TabLayoutの選択されたタブと選択されていないタブの別のtextAppearanceを設定してください

答えて

1

、あなたはOnTabSelectedListenerインターフェイス

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); 
       } 
      } 
     } 
} 
onTabSelectedでそれを行う必要があります
関連する問題