ydstsh ydstsh - 3 months ago 29
Android Question

How to use custom fonts in DrawerLayout and NavigationView

I want to use Android's

DrawerLayout
and
NavigationView
for menus, but I don't know how to have the menu items use a custom font. Does anyone have a successful implementation?

Answer

use this method passing the base view in your drawer

 public static void overrideFonts(final Context context, final View v) {
    Typeface typeface=Typeface.createFromAsset(context.getAssets(), context.getResources().getString(R.string.fontName));
    try {
        if (v instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) v;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View child = vg.getChildAt(i);
                overrideFonts(context, child);
            }
        } else if (v instanceof TextView) {
            ((TextView) v).setTypeface(typeface);
        }
    } catch (Exception e) {
    }
}