Jestem zainteresowany najlepszym sposobem na pojedyncze działanie, które przełącza się między dwoma fragmentami.Najlepszy sposób na przełączanie między dwoma fragmentami
Przeczytałem prawdopodobnie 15 stosów przepełnienia stosu i 5 postów na blogach, jak to zrobić, i chociaż wydaje mi się, że wybrałem rozwiązanie, nie jestem przekonany, że jest najlepszy. Chcę więc wysłuchać opinii ludzi na temat właściwej metody radzenia sobie z tym, zwłaszcza w odniesieniu do cyklu życia rodzicielskiej działalności i fragmentów.
tutaj sytuacja w szczegółach:
- Czynność nadrzędny może posiadać jedną z dwóch możliwych fragmentów.
- Dwa fragmenty mają stan, który chciałbym zachować podczas sesji, ale niekoniecznie musi być utrzymywany między sesjami.
- Wiele innych czynności, które sprawiają, że aktywność nadrzędna i fragmenty mogą zostać pochowane w tylnym stosie i zniszczone z powodu małej ilości pamięci.
- Chcę użyć przycisku wstecz, aby poruszać się między fragmentami (Tak, jak rozumiem, nie mogę użyć setRetainInstance).
Oprócz ogólnej architektury radę, mam następujący zaległe pytania:
- Jeżeli aktywność rodzic jest niszczone z powodu braku pamięci, w jaki sposób mogę zagwarantować, że zostaną zachowane stany obu fragmentów , jak na ten post: When a Fragment is replaced and put in the back stack (or removed) does it stay in memory?. Czy potrzebuję tylko wskaźnika do każdego fragmentu w działaniu nadrzędnym?
- Jaki jest najlepszy sposób monitorowania aktywności nadrzędnego obiektu, który aktualnie wyświetla?
Z góry dziękuję!
Dzięki za odpowiedź. Nie sądzę, abym mógł używać tutaj pagera widoku, ponieważ widoki nie powinny być przesuwane między. Zdecydowanie zaimplementuję działkę parującą. Gdzie mogę wdrożyć onBackPressed? – GLee
OnBackPressed to metoda działania. Więc będziesz musiał to zmienić. –