2014-11-25 4 views

Antwort

75

Verwenden

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

dies zu erreichen.

Sie können Ihr eigenes Schließsymbol erstellen oder von material design icon set auf GitHub erhalten. Fügen Sie auch diese Zeile vor der obigen Zeile hinzu, um close-Funktion als den Zurück-Pfeil zu machen.

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

Es funktioniert nicht. Es ersetzt nicht den Zurückpfeil mit dem neuen Symbol, beide erscheinen. Außerdem erhält das Icon bei dieser Lösung nicht die Eigenschaft "colorPrimaryDark". –

+0

@MartaRodriguez Bitte sehen Sie meine aktualisierte Antwort –

+0

Es funktioniert, ist aber nicht genau das, was ich wollte. Ich habe erwartet, dass ich mit "colorPrimaryDark" als Back-Icon arbeiten werde. Aber es scheint, dass das Symbol "Schließen" nicht Teil des SDK ist. Danke @AlokNair! –

-3

Sie können einen Stil definieren:

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

und verwenden Sie es in Ihrem Thema:

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

Sie benötigen ein Elternteil im Manifest zu definieren, dann überschreiben onSupportNavigationUp() wenn Sie die Support-App-Leiste verwenden. Auch gehen zu dieser praktischen Seite für das Icon-Pack: 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

Gibt es einen Grund, warum Sie "onSupportNavigateUp()" falsch zurückgegeben haben? Die Dokumentation sagt, es ist nur eine Erfolgsflagge – brainmurphy1

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

Eine Alternative, um die übergeordneten Aktivität im Manifest zu definieren, zu handhaben, welche Maßnahmen in der onOptionsItemSelected Methode zu nehmen wie In diesem Beispiel:

@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

Entschuldigung für die späte Antwort. Ich fand einfachste Lösung für Sie. hier vor allem funktioniert die Antwort nicht für mich (because i want to use toolbar not actionBar due to theming). Versuchen Sie also, die Schaltfläche "Schließen" über das XML-Layout hinzuzufügen. und es funktioniert.

Hier ist eine XML-Syntax zum Hinzufügen der Schaltfläche zum Schließen der Symbolleiste (v7).

app:navigationIcon="@drawable/ic_close_black_24dp" 

am hier ist ein löschte Bild output image

Verwandte Themen