Jakie jest znaczenie addToBackStack (null), po którym następuje commit ()?
Cytowanie dokumentów:
Wywołując addToBackStack (), transakcja zamiany jest zapisywana na stosie tylnym, aby użytkownik mógł cofnąć transakcję i przywrócić poprzedni fragment, naciskając przycisk Wstecz.
Jeśli dodasz wiele zmian do transakcji (takich jak kolejna add () lub remove ()) i wywołasz addToBackStack (), wszystkie zmiany zastosowane przed wywołaniem commit () zostaną dodane do stosu wstecznego jako pojedyncza transakcja i przycisk Wstecz odwróci je wszystkie razem.
Kolejność, w jakiej dodajesz zmiany do FragmentTransaction, nie ma znaczenia, z wyjątkiem:
Musisz zadzwonić commit()
ostatni. Jeśli dodajesz wiele fragmentów do tego samego kontenera, kolejność ich dodawania określa kolejność ich wyświetlania w hierarchii widoków.
Więc musisz się zobowiązać w końcu.
Dlaczego musisz przekazać parametr o wartości null, aby addToBackStack?
Nie musi to być null, może to być ciąg. Jeśli nie chcesz, po prostu podaj null.
public abstract FragmentTransaction addToBackStack (nazwa ciągu)
Dodano na poziomie API 11 Dodaj tę transakcję do stosu tylnego. Oznacza to, że transakcja zostanie zapamiętana po jej zatwierdzeniu i odwróci swoją operację, gdy zostanie później zdjęta ze stosu.
Nazwa parametrów Opcjonalna nazwa tego stanu stosu tylnego lub null.
O:
Wygląda na to, że ten kod jest bezużyteczny, ponieważ uruchomiłem kod bez ostatniej linii .addToBackStack (null) .commit () i działał bez żadnych problemów
Jeśli chcesz przejść do poprzedniego fragmentu, dodaj go do stosu. Zależy to więc od tego, czy chcesz dodać fragment do stosu.
Jak zdobyć ten fragment po dodaniu w ten sposób?
Masz już instancję fragmentu firstFragment
. Więc nie wiem, co masz na myśli, mówiąc o zdobyciu fragmentu później.
Więcej informacji @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)