2013-10-18 20 views

risposta

3

Per mantenere lo stato di un frammento, è necessario chiamare setRetainInstance(true) all'interno del frammento onCreate(). Cosa fa:

controllo se un'istanza frammento viene conservato Activity ricreazione (ad esempio da un cambiamento di configurazione).

Che mantiene lo stato attraverso l'attività di ricreazione, ma in questo caso l'attività non verrà ricreata, si stanno manualmente spostando i frammenti utilizzando il cassetto. In tal caso, invece di creare un nuovo frammento all'interno del listener di clic del cassetto, dovresti cercare il frammento utilizzando findFragmentById(int id) o findFragmentByTag(String tag). Se il valore restituito è nullo, è possibile crearne uno nuovo in tutta sicurezza.

+0

Perché il gestore dei frammenti non riesce a trovare il frammento dopo che si è allontanato? Capisco che potrebbero esserci molte ragioni, ma c'è qualcos'altro necessario non già menzionato? – brainmurphy1

Problemi correlati