studio personalizar personalizado iconos icono example cambiar bar agregar android icons android-actionbar navigation-drawer

android - personalizar - El icono del cajón de navegación(ic_drawer) no se muestra



navigationview android (5)

Resolví el mismo problema al tener un <meta-data> especificado para mi actividad, pero el valor de android: apunta a la misma actividad.

Por lo tanto, si el nombre de la actividad es MainActivity, a continuación, agregue la etiqueta a continuación a su actividad en el archivo de manifiesto.

<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.MainActivity" />

Espero que esto ayude. :)

Estoy implementando un cajón de navegación para mi aplicación. Ahora funciona perfectamente, excepto por un pequeño fallo. Cuando configuro el ícono del cajón de navegación (ic_drawer) para reemplazar el ícono caret regular "HomeAsUp", aún obtengo la flecha. El icono del cajón de navegación no se muestra. He implementado todos los métodos que estaban en el sitio web de desarrolladores de Android. Pero no parece funcionar.

A continuación se muestra mi código:

DrawerLayout mDrawerLayout; FrameLayout leftDrawer, rightDrawer, contentFrame; ActionBarDrawerToggle mDrawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); initializeViews(); } private void initializeViews() { // TODO Auto-generated method stub mDrawerLayout = (DrawerLayout) findViewById(R.id.mDrawerLayout); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open_content_desc, R.string.drawer_close_content_desc); getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); mDrawerLayout.setDrawerListener(mDrawerToggle); leftDrawer = (FrameLayout) findViewById(R.id.drawerLeft_frame); rightDrawer = (FrameLayout) findViewById(R.id.drawerRight_frame); contentFrame = (FrameLayout) findViewById(R.id.content_frame); } @Override protected void onPostCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.home, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); }


Sé que es bastante tarde para responder esto, pero esto ayudaría a alguien al menos.

Probablemente debería agregar estas líneas de código para mostrar ese ícono de navegación.

@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); }


Simplemente ponga este código en su archivo styles.xml:

<item name="homeAsUpIndicator">@drawable/ic_drawer</item> <item name="android:homeAsUpIndicator">@drawable/ic_drawer</item>

Tuve este mismo problema y esto me funcionó.

EDITAR

Programáticamente puede establecer: getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);


Tienes que poner este código:

getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);

o

getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);

Espero que este código te ayude.


Verifique en el archivo AndroidManifest.xml, para que la actividad específica NO tenga el conjunto de metadatos "android.support.PARENT_ACTIVITY" . Intente eliminar <meta-data> si está configurado de esta manera:

<activity> ... <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.company.project.ParentActivity"/> </activity>