Sobes.tech
Middle — Middle+

Hogyan lehet minden aktív fragmenst visszaállítani a visszaállítási pultban, és visszatérni az eredeti fragmenthez, alternatív módszerek használatával a clearBackStack helyett?

sobes.tech MI

Válasz az MI-től

Az összes aktív fragmenst a visszaemlékezési halomból alaphelyzetbe állítani, és visszatérni az eredeti fragmenthez a clearBackStack használata nélkül, a POP_BACK_STACK_INCLUSIVE zászlóval ellátott popBackStack módszert használhatod.

Példa:

// Tegyük fel, hogy az eredeti fragmenthoz a "start_fragment" címke tartozik
supportFragmentManager.popBackStack("start_fragment", FragmentManager.POP_BACK_STACK_INCLUSIVE)

Ez a hívás eltávolítja a halomból az összes fragmet a megadott címkéig, beleértve azt, majd újra hozzáadhatod az eredeti fragmethet, ha az törlésre került.

Alternatívaként, ciklust használhatsz arra, hogy egymás után hívod a popBackStack() metódust, amíg a szükséges fragmenst nem hagyod meg, vagy a popBackStackImmediate módszert használhatod szinkron törléshez.

Azt is megteheted, hogy a replace() módszerrel helyettesíted a halom tartalmát, így a jelenlegi fragmethet cseréled, és nem adod hozzá a tranzakciót a visszaemlékezési halomhoz, így tisztítva a történelmet.