Toggle DrawerLayout con solo título (NO Icono de la aplicación)?

Tengo una actividad con un DrawerLayout . Puedo abrir el cajón de dos maneras diferentes … deslizando desde el área izquierda de la pantalla hacia la derecha y haciendo clic en el título de la aplicación. No se muestra un icono de aplicación, solo un título. He implementado exactamente lo recomendado por Google aquí: Creación de un cajón de navegación: Abrir y cerrar con el icono de la aplicación

Todo es funcional hasta abrir y cerrar el cajón. Sin embargo, no muestra el icono estándar de DrawerLayout que se supone que debe utilizarse. En su lugar, obtener el regular hasta caret (parece un menos de signo).

Tan pronto como agrego el icono de la aplicación de nuevo a la ActionBar comienza a funcionar como se esperaba. El icono de diseño del cajón se muestra y se anima cuando se abre o cierra el cajón. He intentado quitar el icono de la aplicación tanto en mi archivo XML de estilos como de forma programática.

¿Hay una manera de conseguir el icono de DrawerLayout trabaja SIN el icono de la aplicación ???

ACTUALIZACIÓN: He encontrado un trabajo alrededor, pero es un hack más que una solución. Simplemente creé un PNG 1×1 píxel transparente (blank.png) y lo configuré como mi icono de aplicación en mi archivo styles.xml. A continuación se muestra todo el código relativo:

Styles.xml

 <style name="MyCustomTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyCustomActionBar</item> <item name="android:icon">@drawable/blank</item> </style> <style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:displayOptions">showHome|showTitle|homeAsUp</item> </style> 

MainActivity -> onCreate ()

 this.navDrawerToggle = new ActionBarDrawerToggle ( this, this.navDrawerLayout, R.drawable.icon_nav_drawer, R.string.nav_drawer_open, R.string.nav_drawer_closed ) { public void onDrawerClosed(View view) {} public void onDrawerOpened(View drawerView) {} }; 

MainActivity -> onPostCreate ()

 super.onPostCreate(savedInstanceState); this.navDrawerToggle.syncState(); 

MainActivity -> onResume ()

 this.navDrawer.setOnItemClickListener(new DrawerItemClickListener()); this.navDrawerLayout.setDrawerListener(this.navDrawerToggle); 

MainActivity -> onPause ()

 this.navDrawer.setOnItemClickListener(null); this.navDrawerLayout.setDrawerListener(null); 

MainActivity -> onConfigurationChanged (Configuración newConfig)

 super.onConfigurationChanged(newConfig); navDrawerToggle.onConfigurationChanged(newConfig); 

MainActivity -> onOptionsItemSelected (elemento MenuItem)

 if (this.navDrawerToggle.onOptionsItemSelected(item)) {return true;} else { // A bunch of item click handling happens here... return true; } 

getActionBar().setIcon(android.R.color.transparent);

Esto funcionó para mí …..;)

Tenía curiosidad por esto así que lo probé con la muestra para el DrawerLayout y funcionó bien. También, parece que usted tiene que utilizar su propio icono del cajón drawable, se recomienda de todos modos. Puede descargar los activos predeterminados de este sitio Creación de un cajón de navegación y colocarlos en su respectiva carpeta de recursos dibujable.

Esto es lo que funcionó para mí:

 ActionBar actionBar = getActionBar(); // Let's get rid of the app icon here actionBar.setIcon(null); actionBar.setTitle("App Name"); // Setting these 3 options allows us to show the title as well as a "Home" elements // "Home" elements include the Up and/or Drawer icon. The DISPLAY_HOME_AS_UP will enable // and show the Drawer icon, we'll be "replacing" the "up" button with the drawer icon below actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP); // Get a reference of the DrawerLayout DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerLayout.setDrawerListener(drawerToggle); // Setting ActionBarDrawerToggle will allow you to set the drawables for the drawer // (this will also give you the nice/smooth animation) as well as allow you to do some // other things depending on the events: onDrawerClosed & onDrawerOpened. ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ drawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description for accessibility */ R.string.drawer_closed /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { actionBar.setTitle("Closed..."); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } public void onDrawerOpened(View drawerView) { actionBar.setTitle("Open..."); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } }; // Set a listener to be notified of drawer events. drawerLayout.setDrawerListener(drawerToggle); 

ACTUALIZACIÓN: Parece que el android: displayOptions en el estilo de ActionBar no están siendo contabilizados. En su lugar, utilice actionBar.setDisplayOptions (int options).

Después de ajustar el interruptor del cajón, debe llamar al siguiente método:

  mDrawerToggle.syncState(); 

Por lo que su código se vería así:

  mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description for accessibility */ R.string.drawer_close /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { actionBar.setTitle(mTitle); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } public void onDrawerOpened(View drawerView) { actionBar.setTitle("Preview Mode"); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } }; mDrawerToggle.syncState(); mDrawerLayout.setDrawerListener(mDrawerToggle); 
  • ¿Cómo puedo hacer que DrawerLayout se muestre debajo de la barra de herramientas?
  • Cómo configurar el recuento de notificaciones no leídas en NavigationView de DrawerLayout?
  • Android DrawerLayout y Listview con adaptador personalizado
  • Logo de ActionBar mover hacia la izquierda
  • Android, ¿cuál es la clase equivalente de DrawerLayout cuando no se usa la biblioteca de soporte?
  • ¿Cómo mostrar el DrawerLayout cuando se desliza de izquierda a derecha, no importa dónde?
  • Autocompletar no funciona en archivos XML en una jerarquía particular
  • No se puede arrastrar DrawerLayout desde ListView
  • Android DrawerLayout no funciona con ViewPager?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.