web-dev-qa-db-fra.com

Matériau "fermer" bouton dans la barre d'outils au lieu de retour

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?

inbox compose close button

75
Marta Rodriguez

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);
100
Alok Nair

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

enter image description here

18
worked

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"

ans voici une image sortie output image

5
Rk215 Tech
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);
5
krishnan

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);
}
2
34m0