2014-05-19 8 views
5

Ich möchte das mittlere Fragment des Fragmentstapels entfernen. h., ich habe einen Stapel mit den Fragmenten A, B, C, D In diesem Fall möchte ich B oder C entfernen, ohne D zu entfernen.Entfernen des mittleren Fragments von FragmentStack

Gibt es eine Möglichkeit, das zu tun? Denn wenn ich D entferne und es nach dem Entfernen von B oder C wieder hinzufüge, wird es Zeit brauchen, um die Ansicht zu erstellen und alle Details erneut hinzuzufügen.

+0

, was Sie bisher getan haben? Schreiben Sie einen Code, an dem Sie gearbeitet haben, damit wir Ihnen besser helfen können. –

+0

@OnurA. Entschuldigung, dass ich keinen Code geschrieben habe, ich habe nur "add", "hide" und "remove" Methoden der Fragmentdurchtrennung verwendet. Danke für die Wiederholung! – AJit

Antwort

3

Tags beim Aufruf der Fragmente verwenden, wobei jedes Fragment ein eindeutiges Tag hat. Entfernen Sie dann mithilfe dieses Tags Fragmente aus dem Fragmentstapel.

Umschalten zwischen Fragmente wie folgt aus:

public void switchContent(final Fragment fragment, final String TAG) { 
     CgUtils.showLog(TAG, "in switchcontent with fragment passed " + fragment); 
     mContentFragment = fragment; 
     Handler h = new Handler(); 
     h.postDelayed(new Runnable() { 
      public void run() { 
       getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment, TAG) 
         .commitAllowingStateLoss(); 
       fragment.setRetainInstance(true); 
       getSlidingMenu().showContent(); 
       // .commit(); 
      } 
     }, 50); 
    } 

z:

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.remove(fragmentManager.findFragmentByTag(tag)).commit(); 
+0

Ganz anders als das, was ich dachte, aber ich muss es eine Chance geben, mein aktuelles Problem ist, dass ich Backstack nach Auswahl des nächsten Fragments durch den Benutzer behandeln muss, BTW @ user2564055 Danke für die schnelle Wiederholung :) – AJit

+0

.remove funktioniert Fragment zwischen Stack zu entfernen, aber BackStackEntry ist da, wenn Sie zurück drücken, wirkt sich das als leeres Fragment aus. Zum Zeitpunkt des Hinzufügens von Fragment muss ich immer das zu Backstack hinzufügen .. – AJit

Verwandte Themen