2014-11-25 34 views

risposta

75

Usa

this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close); 

per raggiungere questo obiettivo.

È possibile creare la propria icona chiudi o ottenere da material design icon set su GitHub. Inoltre, aggiungi questa linea prima della riga precedente per rendere la funzione chiusa come la freccia indietro.

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

Non funziona. Non sostituisce la freccia indietro con la nuova icona, entrambi appaiono. Inoltre, con questa soluzione l'icona non ottiene la proprietà "colorPrimaryDark". –

+0

@MartaRodriguez Si prega di vedere la mia risposta aggiornata –

+0

Funziona ma non è esattamente quello che volevo. Mi aspettavo di lavorare come fa l'icona posteriore, con "colorPrimaryDark". Ma sembra che l'icona "chiudi" non faccia parte dell'SDK. Grazie @AlokNair! –

-3

È possibile definire uno stile:

<style name="Theme.Toolbar.Clear"> 
    <item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item> 
</style> 

e utilizzarlo nel vostro tema:

<style name="Theme.Clear"> 
    <item name="toolbarTheme">@style/Theme.Toolbar.Clear</item> 
</style> 
14

È necessario definire un genitore nel manifesto, poi ignorare onSupportNavigationUp() se si utilizza ovviamente la barra dell'app di supporto. Inoltre, vado a questo sito utile per i pacchetti di icone: 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

+0

qualsiasi motivo hai restituito false da 'onSupportNavigateUp()'? La documentazione dice che è solo una bandiera di successo – brainmurphy1

3
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle("Search"); 
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha); 
setSupportActionBar(toolbar); 
1

Un'alternativa a definire l'attività di genitore nel manifesto è quello di gestire le azioni da intraprendere nel metodo onOptionsItemSelected come in questo esempio:

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

scusa per la risposta in ritardo. ho trovato la soluzione più semplice per voi. qui soprattutto la risposta non funziona per me (because i want to use toolbar not actionBar due to theming). quindi prova ad aggiungere un pulsante di chiusura tramite il layout xml. e funziona

Ecco una sintassi xml per aggiungere il pulsante di chiusura alla barra degli strumenti (v7).

app:navigationIcon="@drawable/ic_close_black_24dp" 

ans qui è un fuori mettere un'immagine output image

Problemi correlati