// the find
mikepenz/MaterialDrawer
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
MaterialDrawer is a navigation drawer library for Android that wraps the standard DrawerLayout with a higher-level API covering account switchers, badges, expandable items, and theming. It targets developers who want a fully-featured side nav without wiring up RecyclerView adapters and state management from scratch. The library has tracked Android's design spec through Material 2 and now Material 3.
The item model hierarchy is well thought out — IDrawerItem, AbstractDrawerItem, and the various concrete types give you a real extension point for custom items without forking the library. The image loader abstraction (AbstractDrawerImageLoader) lets you plug in Picasso or Glide without the library carrying either as a dependency. NavController support ships as a separate optional module so you don't pay for it if you don't use it. Eleven years of active maintenance with a v9/v10 migration path means it hasn't been abandoned mid-ecosystem-shift.
The library predates Jetpack Compose and there's no Compose API — if your app is moving to Compose navigation, this is a dead end and you'll be wrapping it in an AndroidView. The image loading delegation pattern, while flexible, means a blank drawer if you forget to call DrawerImageLoader.init() before the first URL load, and the failure is silent. v10 is still in beta (v10.0.0-b01) with JVM 17 and M3 support, so anyone needing that target is stuck on pre-release code. The account header profile switching is fairly opinionated about its layout and is hard to restyle without overriding deeply nested XML attributes.