Mam kod klienta. Dla wszystkich fragmentów istnieje tylko jedno działanie, tj. Pojedyncze działanie zarządza wszystkimi fragmentami.Jakie jest znaczenie metody addToBackStack z parametrem null?
Działalność ta zawiera następujący kod dla każdego fragmentu na końcu tej metody fragmentom
Na przykład - fragment MoreFragment:
MoreFragment firstFragment = new MoreFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.article_fragment, firstFragment)
.addToBackStack(null).commit();
Więc
1) Czym jest znaczenie addToBackStack(null)
, po którym następuje commit()
?
2) Dlaczego należy przekazać parametr zerowy do addToBackStack
?
3) Jak zdobyć ten fragment po dodaniu w ten sposób?
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.
http: // developer. android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String) w niektórych przypadkach musisz wywołać tę metodę. – Kedarnath
http://stackoverflow.com/a/18846336/3330969 – Kedarnath
Możesz przekazać nazwę fragmentu jako parametr do addToBackStack (name) zamiast Null. Jeśli przekażesz Null, nie będziesz mógł użyć metody FragmentManager.popBackStackImmediate (nazwa String, int flags); lub popBackStack (nazwa ciągu, flagi int); ponieważ nazwa miała wartość Null. Tak więc metody popBackstack nie będą działać. Proponuję przekazać nazwę fragmentu jako parametry zamiast przekazywania wartości null. – luckylukein