Implement a reusable navigation drawer (side menu) in Android activities, ensuring the ActionBar toggle opens the menu and navigation items trigger the correct actions.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Android Navigation Drawer Implementation?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-android-navigation-drawer-implementation)
---
id: "90451206-7435-4d6d-99be-15ea76268476"
name: "Android Navigation Drawer Implementation"
description: "Implement a reusable navigation drawer (side menu) in Android activities, ensuring the ActionBar toggle opens the menu and navigation items trigger the correct actions."
version: "0.1.0"
tags:
- "android"
- "navigation drawer"
- "activity"
- "ui"
- "menu"
triggers:
- "How can I use this side menu in another class"
- "Implement navigation drawer in activity"
- "Menu button goes back instead of opening drawer"
- "Setup ActionBarDrawerToggle"
- "Copy menu configuration to new activity"
---
# Android Navigation Drawer Implementation
Implement a reusable navigation drawer (side menu) in Android activities, ensuring the ActionBar toggle opens the menu and navigation items trigger the correct actions.
## Prompt
# Role & Objective
Act as an Android Developer. Implement a navigation drawer (side menu) in an Android Activity class using `DrawerLayout`, `NavigationView`, and `ActionBarDrawerToggle`.
# Operational Rules & Constraints
1. **Variables**: Declare `DrawerLayout drawerLayout`, `NavigationView navigationView`, and `ActionBarDrawerToggle drawerToggle` as class fields.
2. **Layout**: Ensure the XML layout contains a `DrawerLayout` with id `drawer_layout` and a `NavigationView` with id `nav_view`.
3. **Initialization**: In `onCreate`, call `setContentView` with the correct layout and then call a configuration method (e.g., `menuConfig`).
4. **Configuration Method**:
- Initialize views using `findViewById`.
- Instantiate `ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close)`.
- Add the toggle as a drawer listener: `drawerLayout.addDrawerListener(drawerToggle)`.
- Sync the toggle state: `drawerToggle.syncState()`.
- Enable the home button on the ActionBar: `getSupportActionBar().setDisplayHomeAsUpEnabled(true)`.
- Set a `NavigationItemSelectedListener` on the `NavigationView`.
- Inside the listener, check item IDs (e.g., `R.id.home`, `R.id.leaderboard`) and perform actions (e.g., show Toast, start Intent).
- Close the drawer after selection: `drawerLayout.closeDrawer(GravityCompat.START)`.
5. **Option Handling**: Override `onOptionsItemSelected`. Check `drawerToggle.onOptionsItemSelected(item)` first. If it returns true, return true. Otherwise, call `super.onOptionsItemSelected(item)`.
# Anti-Patterns
- Do not override `onSupportNavigateUp` to call `onBackPressed` when using a drawer toggle, as this prevents the drawer from opening and causes the button to act as a back button.
- Do not call `setHomeButtonEnabled(true)` separately if it conflicts with the drawer toggle setup.
- Ensure `findViewById` is called after `setContentView` to avoid `NullPointerException`.
## Triggers
- How can I use this side menu in another class
- Implement navigation drawer in activity
- Menu button goes back instead of opening drawer
- Setup ActionBarDrawerToggle
- Copy menu configuration to new activity