Ich möchte eine Schriftart zum Tablayout hinzufügen. Die Registerkarten werden dynamisch mit Json gefüllt. Bitte schlagen Sie mir vor, wie Sie den Tab-Kopfzeilen eine Schriftart hinzufügen.Tablayout Schriftart nicht ändern
Dies ist der 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);
}
}
}
}
Dies ist der Adapter. Tabnames sind hier ein String-Array, das von json parsing gefüllt wird.
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);
}
}
}
Kann mir jemand helfen, die Schriftart des tablayout.I zu ändern versucht haben, dies in dem setupPager zu verwenden, aber es funktioniert nicht.
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);
}
}
}
ich dieses versucht haben .. Aber ich möchte eine eigene Schriftart "EdgeCaps.ttf" angewendet werden zum tablayout.Wie das über den Code zu tun? –
Dies funktioniert nicht. TextAppearance.Design.Tab ist ein Button-Stil und es sieht so aus, als ob eine Pre-Material-Design-Schaltfläche keine benutzerdefinierte Schriftart über Styles haben kann. –