Prima di tutto, sto utilizzando FragmentStatePagerAdapter per alimentare un ViewPager con frammenti da visualizzare.ViewPager non si aggiorna sempre quando viene chiamato setAdapter, FragmentStatePagerAdapter
Quando l'app è in esecuzione (ad esempio dopo onResume()
), la chiamata di setAdapter sul ViewPager funziona sempre e il mio ViewPager si aggiorna, viene chiamato il metodo getItem(int position)
nell'adattatore.
Tuttavia, dopo un cambio di orientamento, se si chiama setAdapter nel metodo onCreate(Bundle savedInstance)
della mia attività, il metodo getItem(int position)
non viene chiamato e il vecchio frammento viene riutilizzato.
Sto pensando che FragmentManager stia facendo qualcosa che non capisco? Fragment Manager è l'unica cosa che non viene distrutta durante il cambio di orientamento.
Grazie
Il problema è SavedState. Ho lo stesso problema ma nessuna soluzione. Puoi provare a seguire: prima di impostare l'adattatore di chiamata dell'adattatore.saveState, quindi imposta l'adattatore e chiama restoreSavedState con lo stato salvato. Nel mio caso non ha aiutato, ma forse per te. Motivo: nel ViewPager setAdapter è stato salvato lo stato corrente e riutilizzato. (penso) – Informatic0re
Trova la risposta giusta qui: http://stackoverflow.com/questions/13910826/viewpager-fragmentstatepageradapter-orientation-change – Informatic0re
Ciò causa perdite di memoria? Molti dicono di sì. Qualche altra soluzione su come gestire questo scenario? – pradyumnad