web-dev-qa-db-fra.com

Android composant de navigation: comment enregistrer l'état du fragment

J'utilise bottomNavigationView et le composant de navigation. Veuillez me dire comment je ne détruis pas le fragment après être passé à un autre onglet et revenir à l'ancien? Par exemple, j'ai trois onglets - A, B, C. Mon onglet de démarrage est A. Après avoir navigué vers B, puis renvoyé A. Lorsque je reviens à l'onglet A, je ne veux pas qu'il soit recréé. Comment le faire? Merci

23
Nikitc

Selon le problème ouvert , la navigation ne prend pas directement en charge plusieurs piles arrière - c'est-à-dire, l'enregistrement de l'état de la pile B lorsque vous revenez à B depuis A ou C car les fragments ne prennent pas en charge plusieurs piles arrière.

Selon ce commentaire :

Le NavigationAdvancedSample est désormais disponible sur https://github.com/googlesamples/Android-architecture-components/tree/master/NavigationAdvancedSample

Cet exemple utilise plusieurs NavHostFragments, un pour chaque onglet de navigation inférieur, pour contourner les limitations actuelles de l'API Fragment dans la prise en charge de plusieurs piles de retour.

Nous allons continuer avec l'API Fragment pour prendre en charge plusieurs piles de retour et l'API Navigation pour s'y connecter une fois créée, ce qui supprimera le besoin de quelque chose comme NavigationExtensions.kt fichier. Nous continuerons d'utiliser ce problème pour suivre ce travail.

Par conséquent, vous pouvez utiliser l'approche NavigationAdvancedSample dans votre application dès maintenant et suivre le problème afin d'obtenir des mises à jour lorsque le problème sous-jacent est résolu et qu'une prise en charge directe est ajoutée à Navigation.

17
ianhanniballake

Essayez d'utiliser un ViewModels pour vos fragments.

0
Vahag Chakhoyan