Я хочу добавить шрифт в tablayout. Закладки заполняются динамически с помощью Json. Пожалуйста, предложите мне добавить шрифт в заголовки вкладок.Шрифт Tablayout не меняется
Это tablayout
private void setupPager() {
viewPager.setAdapter(new CustomAdapter(getActivity().getSupportFragmentManager(),getContext()));
tabLayout.setupWithViewPager(viewPager);
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "EdgeCaps.ttf");
ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
int tabsCount = vg.getChildCount();
for (int j = 0; j < tabsCount; j++) {
ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
int tabChildsCount = vgTab.getChildCount();
for (int i = 0; i < tabChildsCount; i++) {
View tabViewChild = vgTab.getChildAt(i);
if (tabViewChild instanceof TextView) {
((TextView) tabViewChild).setTypeface(tf);
}
}
}
}
Это адаптер. Здесь tabnames - это строковый массив, заполненный обработкой json.
private class CustomAdapter extends FragmentPagerAdapter {
public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new ItemsMenuFragment();
return fragment;
}
@Override
public int getCount() {
return tabNames.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabNames.get(position);
}
}
}
Может кто-нибудь помочь мне изменить шрифт tablayout.I попытались использовать это в setupPager, но его не работает.
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), "EdgeCaps.ttf");
ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
int tabsCount = vg.getChildCount();
for (int j = 0; j < tabsCount; j++) {
ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
int tabChildsCount = vgTab.getChildCount();
for (int i = 0; i < tabChildsCount; i++) {
View tabViewChild = vgTab.getChildAt(i);
if (tabViewChild instanceof TextView) {
((TextView) tabViewChild).setTypeface(tf);
}
}
}
Я попытался это один .. Но я хочу пользовательский шрифт «EdgeCaps.ttf», который будет применен на tablayout.Как сделать это с помощью кода? –
Это не работает. TextAppearance.Design.Tab - это стиль кнопки, и похоже, что у пред-материальной кнопки дизайна есть собственный шрифт через стили. –