AutoSkill 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.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/android-navigation-drawer-implementation" ~/.claude/skills/ecnu-icalk-autoskill-android-navigation-drawer-implementation && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8/android-navigation-drawer-implementation/SKILL.md
source content

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