Search code examples
androidkotlinandroid-architecture-navigation

Maintaining the state of fragment when navigating to other fragment using Navgation Architechture component


In my project I have used Navigation component to navigate between fragments. But when I navigate from one fragment to other fragment the previous one fragment loose its state when coming back to it.

For ex. I have fragment A and write something in its editText and then I navigate to other fragment B. But when I come back to my fragment A using backpress the editText in fragment A is empty.

Is there a workaround or solution to this issue?


Solution

  • As per the open issue, Navigation does not directly support multiple back stacks - i.e., saving the state of stack B when you go back to B from A or C since Fragments do not support multiple back stacks.

    As per this comment:

    The NavigationAdvancedSample is now available at https://github.com/googlesamples/android-architecture-components/tree/master/NavigationAdvancedSample

    This sample uses multiple NavHostFragments, one for each bottom navigation tab, to work around the current limitations of the Fragment API in supporting multiple back stacks.

    We'll be proceeding with the Fragment API to support multiple back stacks and the Navigation API to plug into it once created, which will remove the need for anything like the NavigationExtensions.kt file. We'll continue to use this issue to track that work.

    Therefore you can use the NavigationAdvancedSample approach in your app right now and star the issue so that you get updates for when the underlying issue is resolved and direct support is added to Navigation.