在TabLayout

时间:2017-05-03 13:07:14

标签: android android-styles android-design-library

是否有人知道如何为textAppearance中的选定和未选定标签设置不同的TabsLayoutdocumentation仅提及一个适合所有人tabTextAppearance的{​​{1}}归因,并且只允许通过tabSelectedTextColor为所选标签设置不同的颜色。 我的目标是在所选标签上使用不同的字体。

1 个答案:

答案 0 :(得分:2)

然后你应该在onTabSelected接口的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);
                }
            }
        }
}