Skip to content

Instantly share code, notes, and snippets.

@jzeferino
Created November 5, 2016 13:00
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jzeferino/797c5e6b72c666b6f87969f6146a2a6e to your computer and use it in GitHub Desktop.
Save jzeferino/797c5e6b72c666b6f87969f6146a2a6e to your computer and use it in GitHub Desktop.
Hack custom font in drawer menu with calligraphy
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) { }
@Override
public void onDrawerOpened(View drawerView) { }
@Override
public void onDrawerClosed(View drawerView) { }
@Override
public void onDrawerStateChanged(int newState) {
overrideMenuFontsFonts(navigationView);
}
});
}
public void overrideMenuFontsFonts(View v)
{
try
{
if (v instanceof ViewGroup)
{
ViewGroup vg = (ViewGroup)v;
for (int i = 0; i < vg.getChildCount(); i++)
{
overrideMenuFontsFonts(vg.getChildAt(i));
}
}
else if (v instanceof TextView)
{
CalligraphyUtils.applyFontToTextView(this, (TextView) v, "fonts/arialbold.ttf");
}
}
catch (Exception e)
{
//Log it, but ins't supposed to be here.
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment