android - example - material design navigation
Botón "cerrar" material en la barra de herramientas en lugar de volver (6)
Puedes definir un estilo:
<style name="Theme.Toolbar.Clear">
<item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
</style>
y úsalo en tu tema:
<style name="Theme.Clear">
<item name="toolbarTheme">@style/Theme.Toolbar.Clear</item>
</style>
Lo he visto en la aplicación Inbox de Google, componiendo un nuevo correo electrónico, en la barra de herramientas en lugar del botón Atrás (una flecha) tiene un botón "cerrar" (ver imagen).
¿Cómo puedo conseguir esto?
Una alternativa para definir la actividad padre en el manifiesto es manejar qué acción tomar en el método onOptionsItemSelected como en este ejemplo:
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
// Respond to the action bar''s Up/Home/back button
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
Utilizar
this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);
lograr esto.
Puede crear su propio ícono de cierre o obtener el ícono de diseño de materiales en GitHub. Además, agregue esta línea antes de la línea superior para hacer que la función de cierre sea la flecha de retroceso.
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
lo siento por la respuesta tardía. Encontré la solución más fácil para ti . aquí, sobre todo, la respuesta no funciona para mí ( because i want to use toolbar not actionBar due to theming
). así que intente agregar el botón Cerrar a través del diseño xml. y funciona.
aquí hay una sintaxis xml para agregar el botón de cerrar a la barra de herramientas (v7).
app:navigationIcon="@drawable/ic_close_black_24dp"
Debe definir un elemento primario en el manifiesto, y luego anular el comando OnSupportNavigationUp () si usa la barra de la aplicación de soporte, por supuesto. Además, vaya a este práctico sitio para los paquetes de iconos: https://www.google.com/design/icons/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourAwesomeLayout);
setupToolBar();
}
private void setupToolBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar == null) return;
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
}
@Override
public boolean onSupportNavigateUp() {
finish(); // close this activity as oppose to navigating up
return false;
}
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);