Icono de navegación de la barra de herramientas nunca configurado

Estoy probando el nuevo componente de la barra de herramientas y teniendo algunos problemas con el icono de navegación. Quiero implementar un icono personalizado para la navegación posterior:

En mi manifiesto establezco un padre a mi actividad:

<activity android:name=".CardsActivity" android:parentActivityName=".MainActivity"> <!-- Parent activity meta-data to support API level 7+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> 

Declaro la barra de herramientas como esta:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.lollitest.MainActivity" > <android.support.v7.widget.Toolbar android:id="@+id/my_awesome_toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:layout_marginBottom="10dp" android:background="?attr/colorPrimary" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/my_awesome_toolbar" android:text="@string/hello_world" /> </RelativeLayout> 

Luego, en mi actividad, configuro la barra de herramientas de la siguiente manera:

 Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); toolbar.setNavigationIcon(R.drawable.ic_good); toolbar.setTitle("Title"); toolbar.setSubtitle("Sub"); toolbar.setLogo(R.drawable.ic_launcher); setSupportActionBar(toolbar); 

Que me da: Barra de herramientas con el botón Atrás

El icono de nuevo no es el que he establecido con setNavigationIcon() ! Sea cual sea el dibujable que doy al método, el icono de navegación es siempre la flecha hacia atrás.

He intentado quitar la asociación del padre en el manifiesto pero el único efecto es (obviamente) evitar que el botón vaya detrás.

Por el contrario, si quiero que el icono de flecha hacia atrás por defecto y no llamar a setNavigationIcon() no tengo ningún icono en absoluto.

¿Cuál es la forma correcta de manejar el icono de navegación en la barra de herramientas (personalizado y predeterminado)?

NOte: estoy ejecutando mi prueba en Android 4.4

Actualmente se puede utilizar, cambiando el orden: (parece ser un error)

 Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.ic_good); toolbar.setTitle("Title"); toolbar.setSubtitle("Sub"); toolbar.setLogo(R.drawable.ic_launcher); 

Específico para el icono de navegación, este es el orden correcto

 // get the actionbar as Toolbar and set it up Toolbar toolbar = (Toolbar) findViewById(R.id.signIn_toolbar); setSupportActionBar(toolbar); 

Informar a la barra de herramientas para proporcionar navegación posterior. Esto establecerá el ícono en el icono de material predeterminado

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Más tarde anular el icono con el personalizado, en mi caso, el icono de nuevo Holo

 toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_36dp); 

(La respuesta a user802421)

 private void setToolbar() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.ic_action_back); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); } } 

Toolbar.xml

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height" android:background="?attr/colorPrimaryDark" /> 

Intenté configurar la barra de herramientas como @Gabriele Mariotti, pero tuve algún problema con el título. Así que entonces ordené

 toolbar.setTitle("Title") setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.ic_good); 

y funciona.

Acabo de encontrar la solución. Es realmente muy simple:

 mDrawerToggle.setDrawerIndicatorEnabled(false); 

Espero que te ayude.

He utilizado el método de abajo que realmente es un enigma de todos los anteriores. También encontré que onOptionsItemSelected nunca se activa.

  mDrawerToggle.setDrawerIndicatorEnabled(false); getSupportActionBar().setHomeButtonEnabled(true); Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); if (toolbar != null) { toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); } 

Puede utilizar el método invalidate() para cambiar el estado de la barra de herramientas en cualquier lugar. Ejemplo:

 Toolbar toolbar = (Toolbar)findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.mipmap.arrow_white); toolbar.invalidate(); // restore toolbar 

Utilice setNavigationIcon para cambiarlo. No olvide crear ActionBarDrawerToggle primero!

Código de ejemplo trabajo para mí:

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); drawer = (DrawerLayout)findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.setDrawerListener(toggle); toggle.syncState(); toolbar.setNavigationIcon(R.drawable.ic_menu); 

Tenía un problema simillar. Después de un gran dolor de cabeza que encontré, que mi ActionBarDrawerToggle estaba modificando el icono, también cuando no debería modificar el icono (porque no he dado referencia a la barra de herramientas para el componente de conmutación). Así que en mi clase de NavigationDrawerFragment (que maneja la apertura y el cierre) en setUp(...)
mDrawerToggle.setHomeAsUpIndicator(R.drawable.app_icon);
Y finalmente funcionó.

Quite esta línea de la actividad si ha agregado

  @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } 

A continuación, establezca el icono

  getSupportActionBar().setHomeAsUpIndicator(icon); 

Prueba esto:

  <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:toolbar="http://schemas.android.com/apk/res-auto" android:id="@+id/tool_drawer" android:layout_width="match_parent" android:layout_height="?actionBarSize" toolbar:navigationIcon="@drawable/ic_navigation"> </android.support.v7.widget.Toolbar> 

trabaja para mi…

 <android.support.v7.widget.Toolbar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/toolBar" android:background="@color/colorGreen" app:title="Title" app:titleTextColor="@color/colorBlack" app:navigationIcon="@drawable/ic_action_back"/> 
  • ¿La mejor práctica para llevar el material a Preferencias usando AppCompat?
  • ¿Cómo puedo crear un widget de interfaz de usuario de diseño de material de Android?
  • Hoja de parte inferior en Android
  • ¿Cuál es la unidad predeterminada de estilo en React Native?
  • AppCompat 21 ActionBar ActionMode color
  • Comunicación entre las pestañas de SlidingTabLayout
  • ¿Existen APIs / Samples / Tutorials oficiales para implementar las nuevas directrices de Material-Diseño?
  • Dimensión de imagen de fondo para la cabecera del cajón de navegación
  • ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
  • Cómo dar color de texto personalizado para un solo elemento de menú en un NavigationView?
  • ¿Por qué mi vista de barra de acciones personalizadas no coincide con "parent" cuando se utiliza appcompat y Toolbar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.