2013-04-02 10 views
5

Czy ktoś mi pomoże. Mam Fragment powiedzieć FRAGMENT A i dodaję go do układu dynamicznie ... Załóżmy, że dodałem 3 wystąpienie FRAGMENT A do tego układu.Następnie Jak mogę usunąć tę 3 fragmentową instancję programowo.Spróbowałem wyszukiwania google, a także inny stackoverflow wątki, ale nie działa ..Jak możemy usunąć dynamicznie dodane fragmenty z układu

Proszę mi pomóc

Dziękuję

Odpowiedz

17

to rzeczywiście dość prosta:

powiedzmy dodano fragment takiego:

fragmentTransac.add(R.id.content, fragA); 

zamiast dodasz go ze znacznikiem zbyt

fragmentTransac.add(R.id.content, new FragA(), "first"); 
// then the other 
fragmentTransac.add(R.id.content, new FragA(), "second"); 

następnie usunąć:

Fragment f = getFragmentManager().findFragmentByTag("first"); 
if(f!=null) fragmentTransac.remove(f); 
fragmentTransac.commit(); 

happy = kodujących]

+0

cześć, dzięki za pomoc ... ale to nie działa ... możesz zasugerować inny sposób, – sam

+0

, który JEST sposób. Jeśli to nie działa, to dlatego, że nie jest poprawnie implementowane. Czy rozumiesz, że obiekt 'fragmentTransac', który umieściłem w tym przykładzie, to FragmentTransaction, który zwykle jest uzyskiwany z getFragmentManager(). BeginTransaction()? Również jeśli używasz instancji kompatybilnego pakietu getFragmentmanager(), powinieneś wywołać getSupportFragmentManager()? Nie uwzględniłem tych szczegółów, ponieważ są one dość proste. – Budius

+0

ye i knpw tych rzeczy ... I umieścić jak thisFragment f = getSupportFragmentManager(). FindFragmentByTag ("hi"); \t FragmentTransaction ft = getSupportFragmentManager(). BeginTransaction(); \t ft.remove (f); – sam

Powiązane problemy