A Gradle plugin and Compose UI library that collects a project's dependency licenses at build time and shows them in Android and multiplatform apps.
mikepenz/MaterialDrawer
A Kotlin/Android library that adds a configurable navigation drawer with profiles, badges, and expandable items to your app.
- Stars
- 11,638
- Forks
- 2,009
- Open issues
- 12
- Last commit
- 4 days ago
What is it?
MaterialDrawer is an Android library for building the navigation drawer that slides in from the edge of a screen. It is built on RecyclerView and the AndroidX support libraries, and you add a MaterialDrawerSliderView as a child of a DrawerLayout to get a working drawer with default item types.
The library covers common drawer needs: primary and secondary items, dividers, badges, expandable items, sticky footers and headers, and an AccountHeader with profile switching. Colors and text styles can be changed through theme attributes, and a MiniDrawer style is included. Icons can come from vector assets or from icon fonts through the Android-Iconics integration, and there is an optional NavController module.
The project provides Kotlin and Material 3 versions, with older Java-based releases also listed. Setup requires a Material 3 theme for v9.x and a JVM target of 1.8 or higher for newer releases.
Key features
- 01Drawer items including primary, secondary, dividers, badges, and expandable entries
- 02AccountHeader with profile list and switching
- 03Sticky footer and header support
- 04Icons from vector assets or icon fonts via Android-Iconics
- 05Themeable colors and styles, with a MiniDrawer variant and RTL support
Use cases
- Adding a side navigation menu to an Android app with account switching
- Building a Gmail-style collapsible mini drawer
- Integrating a navigation drawer with Jetpack Navigation via the NavController module
Quick start
- 1
Add the materialdrawer dependency to your Gradle file
implementation("com.mikepenz:materialdrawer:${latestRelease}") - 2
Add the MaterialDrawerSliderView as a child of your DrawerLayout in the XML layout
- 3
Add the materialDrawerStyle and materialDrawerHeaderStyle items to your app theme
Things to know
- Android-only library that requires Kotlin and the AndroidX support libraries.
- Version 9.x with Material 3 theming requires a Material3 theme as the activity's base theme.
- The latest release listed is a beta (v10.0.0-b01), and the Java and older Kotlin versions are provided as-is only.
- Loading profile images from URLs requires you to add and configure your own image loading library.
In collections
Topics
FAQ
- What is MaterialDrawer?
- A Kotlin/Android library that adds a configurable navigation drawer with profiles, badges, and expandable items to your app. MaterialDrawer is an Android library for building the navigation drawer that slides in from the edge of a screen. It is built on RecyclerView and the AndroidX support libraries, and you add a MaterialDrawerSliderView as a child of a DrawerLayout to get a working drawer with default item types.
- Is MaterialDrawer free to use? What license does it have?
- MaterialDrawer is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is MaterialDrawer still maintained?
- Actively maintained. The last commit to MaterialDrawer was on Nov 2, 2026.
- What can I use MaterialDrawer for?
- Adding a side navigation menu to an Android app with account switching Building a Gmail-style collapsible mini drawer Integrating a navigation drawer with Jetpack Navigation via the NavController module
- How do I install MaterialDrawer?
- Add the materialdrawer dependency to your Gradle file: implementation("com.mikepenz:materialdrawer:${latestRelease}") Add the MaterialDrawerSliderView as a child of your DrawerLayout in the XML layout Add the materialDrawerStyle and materialDrawerHeaderStyle items to your app theme
- Where can I get MaterialDrawer?
- The source code and installation instructions are on GitHub: https://github.com/mikepenz/MaterialDrawer
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Vue.js framework for building SPAs, SSR/SSG sites, PWAs, browser extensions, mobile and Electron apps from one codebase.
A Gradle plugin that automates building, uploading, promoting, and publishing Android apps and Play Store metadata to Google Play.
An on-device HTTP inspector for Android apps that records OkHttp requests and responses, similar to Charles but running inside the app.
A GitHub template for starting Android/Kotlin projects with static analysis, CI via GitHub Actions, and Maven Central publishing already configured.
A React component library implementing Google's Material Design, with a broad set of ready-made UI components.