J'ai vu dans la boîte de réception Google Application, composer un nouvel e-mail, dans la barre d'outils au lieu du bouton de retour (une flèche), il comporte un bouton "fermer" (voir la photo).
Comment puis-je atteindre cet objectif?
Utilisation
this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);
pour y parvenir.
Vous pouvez créer votre propre icône de fermeture ou obtenir de jeu d'icônes de conception de matériel sur GitHub. Ajoutez également cette ligne avant la ligne ci-dessus pour que la fonction de fermeture soit utilisée comme flèche vers l’arrière.
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Vous devez définir un parent dans le manifeste, puis remplacer onSupportNavigationUp () si vous utilisez la barre de l'application de support, bien sûr. Visitez également ce site pratique pour les packs d'icônes: 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;
}
désolé pour la réponse tardive. J'ai trouvé la solution la plus simple pour vous . ici la réponse ci-dessus ne fonctionne pas pour moi (because i want to use toolbar not actionBar due to theming
). alors essayez d’ajouter un bouton de fermeture via la mise en page XML. et il fonctionne.
Voici une syntaxe xml permettant d'ajouter un bouton de fermeture à la barre d'outils (v7).
app:navigationIcon="@drawable/ic_close_black_24dp"
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);
Une alternative à la définition de l'activité parent dans le manifeste consiste à gérer l'action à exécuter dans la méthode onOptionsItemSelected comme dans cet exemple:
@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);
}