2017-03-06 6 views
0

Ich arbeite gerade an der Browser-App für einen Android. Ich verwalte neue Tabs mit Fragmenten. Alles funktioniert also gut, wenn der Benutzer den neuen Tab B öffnet und dann wieder zu Tab A zurückkehrt. Das Problem taucht auf, wenn er von A wieder zurück nach B geht. Mit anderen Worten, es funktioniert nicht, wenn man versucht, das gleiche Fragment zurückzuspringen zum zweiten Mal. DieseFragment zum zweiten Mal aus dem Backstack holen

ist, wie ich neue tabs- Fragmente

android.app.Fragment f1 = new FragmentHolder(); 
    allFragments.add(f1); 
    getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, f1).addToBackStack(fragmentTags[allFragments.size()-1]).commit(); 

und hier das Hinzufügen bin, wie ich das Fragment bin knallen zurück

boolean chkFlag = getFragmentManager().popBackStackImmediate(currentTag.getFragmentTAG(),0); 

ich Ihre Hilfe im Voraus zu schätzen wissen.

Antwort

1

Verwenden unten Funktion in Ihrer Aktivität,

private void loadFragmentAnimated(Fragment fragment, Bundle args, int containerId, String title) 
    { 
     fragment.setArguments(args); 
     FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(containerId, fragment); 
     fragmentTransaction.commitAllowingStateLoss(); 
    } 

Dann Added Fragment unter Verwendung

loadFragmentAnimated(c, null, R.id.container_name, "title"); 

Und entfernen Fragment unter Verwendung

getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.container_name)).commit(); 
+0

Vielen Dank für Ihren Vorschlag, aber Wie werde ich alle Fragmente im Backstack ohne Tag verfolgen? – Alexander

+0

Sie können Fragment nach Container-ID –

+0

verfolgen verweisen Sie diese [Post] (http://Stackoverflow.com/questions/6374170/how-to-set-a-fragment-tag-by-code) –

Verwandte Themen