Przede wszystkim używam FragmentStatePagerAdapter, aby nakarmić ViewPager z fragmentami do wyświetlenia.ViewPager nie zawsze odświeża się po wywołaniu setAdapter, FragmentStatePagerAdapter
Kiedy aplikacja jest w stanie z systemem (czyli po onResume()
), nazywając setAdapter na ViewPager zawsze będzie działać i zrobić mój ViewPager odświeżenia, sposób w adapterze getItem(int position)
nazywa.
Jednak po zmianie orientacji, jeśli zadzwonię do setAdapter w metodzie onCreate(Bundle savedInstance)
mojej aktywności, metoda getItem(int position)
nie zostanie wywołana, a stary fragment zostanie ponownie użyty.
Myślę, że może FragmentManager robi coś, czego nie rozumiem? Menedżer fragmentów jest jedyną rzeczą, która nie ulega zniszczeniu podczas zmiany orientacji.
Dzięki
Problem polega na zapisaniu stanu. Mam ten sam problem, ale nie mam rozwiązania. Możesz spróbować: po ustawieniu adaptera połączenia adaptera.saveState, niż ustaw adapter i wywołaj restoreSavedState z zapisanym stanem. W moim przypadku to nie pomogło, ale może dla ciebie. Powód: w ViewPager setAdapter zapisał bieżący stan i ponownie go użył. (Myślę, że) – Informatic0re
Znajdź właściwą odpowiedź tutaj: http://stackoverflow.com/questions/13910826/viewpager-fragmentstatepageradapter-orientation-change – Informatic0re
Czy to powoduje wycieki pamięci? Wielu twierdzi, że tak. Jakieś inne rozwiązanie, jak radzić sobie z tym scenariuszem? – pradyumnad