2016-12-05 5 views
0

Ich versuche, die folgenden beiden Funktionen zusammenarbeiten, um zu machen:Wie wird der Hauptdetailfluss eingerichtet?

  1. Linke Schublade Navigation
  2. Separate Symbolleiste für jedes Fragment auf dem Bildschirm

Sie können diese Arbeit an Apps wie Google Mail sehen : enter image description here

Sehen Sie, wie jedes Fenster seine eigene Symbolleiste hat? Was ich damit meine ist, dass das "Suchen" Icon rechts auf das linke Fragment ausgerichtet ist. Obendrein brauche ich das auch, um jedem Fenster einzeln einen Titel zu geben.

Dies wäre sehr einfach ohne die linke Schubladennavigation zu tun. Sie werden nur die Symbolleiste auf dem Activity los und verwenden Sie eine Symbolleiste auf jedem Fragment, fertig. Aber mit der linken Schublade Navigation Dinge werden ein bisschen chaotisch, Sie brauchen eine toolbar auf der activity, um es zu implementieren.

Eine mögliche Lösung, die ich dachte, wurde mit inneren Fragmente für den linken Bereich wie folgt aus: enter image description here

Dies sollte in der Theorie funktionieren, aber ich habe innere Fragmente in der Vergangenheit verwendet und sie sind kein Spaß. Ich würde sie gerne vermeiden, wenn es möglich wäre. Auch die Designer daran denken, den linken Bereich der Navigation in der Zukunft zu entfernen, so würde ich viel Refactoring für nichts zu tun haben ...

(PS: Ich weiß, Sie setHasOptionsMenu auf dem Fragment aufrufen zu erstellen ein „kombinierte“ Symbolleiste Elemente aus Aktivität + sichtbarem Fragmente, aber das ist nicht wirklich das, was ich suche)

Antwort

0

Nun, ich habe dieses Problem zu lösen in der Lage und zur Vermeidung von inneren Fragmenten zusammen: D

Dies ist wie ich es eingerichtet habe, falls jemand das gleiche Problem hat:

Fügen Sie diese Methode, um Ihre activity

private ActionBarDrawerToggle toggle; 

    public void setupNavDrawer(Toolbar toolbar) { 
    drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.addDrawerListener(toggle); 
    drawer.addDrawerListener(this); 
    toggle.syncState(); 
} 
  • Jedes Fragment verwaltet seine eigene Symbolleiste

  • Die Aktivität der Schublade Navigation schafft es Und Anruf aus der Fragment deren Symbolleiste haben sollte das Hamburger Menü

    Das ist wie mein activity_main.xml wie folgt aussieht:

    https://gist.github.com/feresr/66aaf9c92173d6414e4ba9df7366f77c

    Das ist für mich arbeitet, lassen Sie mich wissen, wenn Sie irgendwelche Zweifel haben ich werde versuchen, Ihnen zu helfen :)

  • Verwandte Themen