2015-05-24 16 views
9

Ist es möglich, sowohl Home-Symbol und Zurück-Symbol in der Symbolleiste anzuzeigen? 1) Ist es möglich, die Reihenfolge der Anzeige des Zurück-Schaltflächensymbols und des Home-Symbols zu ändern. Momentan wird zuerst die Pfeiltaste und dann das Logo (Home-Taste) angezeigt.Android Toolbar mit Home- und Back-Taste

2) Die zweite Anforderung besteht darin, den Aktivitätsstapel beim Klicken auf das Startsymbol zu löschen und zum vorherigen Bildschirm zurückzukehren.

Ich habe den folgenden Code, der eine Pfeiltaste und Home-Symbol, die als Logo festgelegt ist, anzeigen wird. Ist es möglich, Ereignisse auf beiden dieser Symbole zu handhaben klicken:

Toolbar toolbar = (Toolbar)findByViewID(R.id.toolbar); 
toolbar.setNavigationIcon(R.drwable.btn_back); 
setSuppportActionBar(toolbar); 
getSupportActionBar().setLogo(R.drawable.home_icon); 
getSupportActionBar().setDisplayShowTitleEnabled(false); 
getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Ich bin in der Lage auf den Klick auf den Pfeil-Symbol zu handhaben, indem es in onOptionsITemSelected Verfahren der Handhabung. Gibt es eine Möglichkeit, auf das Logo zu klicken? Meine Idee ist es, den Home-Button zu verwenden, um den Stapel von Aktivitäten zu löschen und mit der Zurück-Taste zurück zum vorherigen Bildschirm zu navigieren.

Ich habe versucht, mit

toolbar.setNavigationOnClickListener() 

aber es hat keinen Einfluss auf die Zurück-Schaltfläche klicken.

Handhabung android.R.id.home arbeitet bei der Handhabung in

onOptionsItemSelected() 
+0

ähnlich zu diesem http: //stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set. ??. Die Werkzeugleiste ist eine Ansichtsgruppe. Sie können benutzerdefinierte Ansicht haben und platzieren Sie sie wo immer Sie wollen. – Raghunandan

+0

@Raghunandan, Es ist keine doppelte Frage, und ich werde versuchen, mit einem benutzerdefinierten Layout und setzen Sie es auf die Symbolleiste. Das könnte funktionieren. –

+0

Ich habe nie gesagt, es ist ein Duplikat. Ich wollte nur wissen, wie Ihre Symbolleiste aussehen sollte. Sie können benutzerdefinierte Ansichten haben und sie entsprechend platzieren. – Raghunandan

Antwort

0
  1. unsere eigene Layout als separate "toolbar_content.xml" Entwerfen und schließen dieses Layout innerhalb toolbar-Tag in Ihrem „main_layout.xml ".
  2. Schreiben Sie Listener für Ihre Elemente in "toolbar_content.xml" in Ihrer Basisaktivität, sodass die Listener in der App verfügbar sind.
1

versuchen mit diesem

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      if (item.getItemId() == android.R.id.home) { 
       getActivity().finish(); 
      } 
      return true; 
     } 
    }); 
6

Für die Navigation zurück. Das hat für mich funktioniert.

@Override 
    public boolean onOptionsItemSelected(MenuItem menuItem) { 
     switch (menuItem.getItemId()) { 
      case android.R.id.home: 
       Intent homeIntent = new Intent(this, HomeActivity.class); 
       homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(homeIntent); 
     } 
     return (super.onOptionsItemSelected(menuItem)); 
    } 
Verwandte Themen