Abra el cajón de navegación haciendo clic en el icono de la aplicación

Quiero dejar que mi usuario abra el cajón de navegación haciendo clic en el icono de la aplicación. Este es mi código:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add); // Show the Up button in the action bar. DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.left_drawer); ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description */ R.string.drawer_close /* "close drawer" description */ ) { /** Called when a drawer has settled in a completely closed state. */ public void onDrawerClosed(View view) { getActionBar().setTitle(R.string.title_activity_add); } /** Called when a drawer has settled in a completely open state. */ public void onDrawerOpened(View drawerView) { getActionBar().setTitle(R.string.drawer_title); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); getActionBar().setDisplayHomeAsUpEnabled(true); // Pressing the app icon in the action bar will navigate to the parent activity. getActionBar().setHomeButtonEnabled(true); } 

Pero cuando toco el icono, no pasa nada. Dónde está el problema.

Echa un vistazo aquí para un ejemplo de los documentos . Necesitas código adicional en

  • onPostCreate() para sincronizar su estado de gaveta
  • onOptionsItemSelected() para manejar el evento táctil del icono de la aplicación
  • onConfigurationChanged() para proporcionar la nueva configuración al cajón

     public class YourActivity extends Activity { public ActionBarDrawerToggle mDrawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { ... mDrawerToggle = new ActionBarDrawerToggle(); ... } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Pass the event to ActionBarDrawerToggle, if it returns // true, then it has handled the app icon touch event if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } // Handle your other action bar items... return super.onOptionsItemSelected(item); } } 

Debe anular onOptionsItemSelected de la actividad y utilizar esto:

 @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } 
  • Cajón de navegación para múltiples actividades
  • La flecha hacia arriba no se muestra después de llamar a ActionBarDrawerToggle.setDrawerIndicatorEnabled (false)
  • Cajón de navegación para cambiar las actividades en lugar de fragmentos
  • Animación de sugerencias de NavigationDrawer (como Google Currents)
  • Android cambia el ancho del panel del cajón de navegación mediante programación
  • Cambiar el color del ícono del cajón de navegación en la plantilla predeterminada de Android Studio
  • ¿Cómo configurar el margen derecho del cajón de navegación?
  • Cómo mostrar / ocultar el cajón de navegación mediante programación
  • Retardo de cajón de navegación en Android
  • Cómo ajustar el ancho del cajón de navegación en el estudio de Android
  • Android, slidingpanelayout vs navigationDrawer
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.