Evitare di Android automaticamente aggiungere nuovamente il mio frammento sul cambiamento dell'orientamento
-
27-10-2019 - |
Domanda
Ho un ListFragment
che dipende dal Activity
hosting per correttamente inizializzazione. Al primo avvio, carica sull'indennità. Una volta a cambiare l'orientamento, la mia app si blocca. Dalla traccia dello stack che posso vedere che non mi sta cercando di aggiungere il Fragment
prematuramente, piuttosto Android sta cercando di ripristinare la Fragment
.
Ho impostato setRetainInstance(false)
nel metodo onStart
ma non riesco a trovare alcun metodo per disabilitare il ripristino del Fragment
una volta che i cambiamenti di orientamento. Qualche idea? Ho bisogno di rimuovere il Fragment
prima della mia app viene distrutta?
Edit: ho finito per ritardare l'inizializzazione l'elenco fino al Activity è pronto. Android mostra convenientemente un messaggio 'Loading' fino a quando viene impostata l'adattatore.
Soluzione
Ho finito per ritardare l'inizializzazione l'elenco fino al Activity è pronto. Android mostra convenientemente un messaggio 'Loading' fino a quando viene impostata l'adattatore.
Altri suggerimenti
Ho un ListFragment che dipende dalla attività di hosting correttamente inizializzazione.
Che può essere la vostra difficoltà proprio lì.
Dalla traccia dello stack che posso vedere che non mi sta cercando di aggiungere il frammento prematuramente, piuttosto Android sta cercando di ripristinare il frammento.
Una corretta.
Tutte le idee?
I si concentrerà sulla gestione modifiche di configurazione in modo corretto. Tra onSaveInstanceState()
nel frammento e la combinazione di onRetainNonConfigurationInstance()
, getLastNonConfigurationInstance()
(entrambi su Activity
) e onAttach()
(sulla Fragment
), si dovrebbe essere in grado di passare tutto ciò che roba è nel vecchio frammento di quello nuovo, senza schiantarsi. Per modifiche di configurazione, non si basano su "l'attività di hosting correttamente inizializzazione".