package com.ivankocijan.magicviews.views; import com.ivankocijan.magicviews.interfaces.MagicView; import com.ivankocijan.magicviews.utils.FontUtils; import android.content.Context; import android.support.design.widget.TabLayout; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * @author Koc * ivan.kocijan@infinum.hr * @since 11/10/15 */ public class MagicTabLayout extends TabLayout implements MagicView { private String fontName; public MagicTabLayout(Context context) { this(context, null); } public MagicTabLayout(Context context, AttributeSet attrs) { this(context, attrs, 0); } public MagicTabLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(attrs); } private void init(AttributeSet attrs) { // Nothing for now } @Override public void setFont(String fontName) { ViewGroup tabLayoutViewGroup = (ViewGroup) this.getChildAt(0); int tabsCount = tabLayoutViewGroup.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup tabViewGroup = (ViewGroup) tabLayoutViewGroup.getChildAt(j); int tabChildCount = tabViewGroup.getChildCount(); for (int i = 0; i < tabChildCount; i++) { View tabViewChild = tabViewGroup.getChildAt(i); if (tabViewChild instanceof TextView) { FontUtils.setTypeface(getContext(), fontName, (TextView) tabViewChild); } } } } }