Сохранение состояния фрагмента при переходе к другому фрагменту с помощью компонента Navgation Architechture

В своем проекте я использовал компонент "Навигация" для навигации между фрагментами. Но когда я перехожу от одного фрагмента к другому, предыдущий фрагмент теряет свое состояние при возвращении к нему.

Например, У меня есть фрагмент A, и я что-то пишу в его editText, а затем перехожу к другому фрагменту B. Но когда я возвращаюсь к своему фрагменту A, используя обратное нажатие, editText во фрагменте A пуст.

Есть ли обходной путь или решение этой проблемы?


person Bipin Tiwari    schedule 02.08.2019    source источник
comment
Фрагменты уже сохраняют и восстанавливают состояние фрагментов в заднем стеке. Похоже, на вашем EditText нет android:id.   -  person ianhanniballake    schedule 02.08.2019


Ответы (1)


Согласно открытой проблеме, навигация не поддерживает напрямую несколько обратных стеков, т. Е. Сохранение состояния стека B, когда вы возвращаетесь к B из A или C, поскольку фрагменты не поддерживают несколько обратных стеков.

Согласно этому комментарию:

NavigationAdvancedSample теперь доступен по адресу https://github.com/googlesamples/android-architecture-components/tree/master/NavigationAdvancedSample.

В этом примере используется несколько NavHostFragments, по одному для каждой нижней вкладки навигации, чтобы обойти текущие ограничения API фрагментов при поддержке нескольких обратных стеков.

Мы продолжим работу с API-интерфейсом Fragment для поддержки нескольких обратных стеков и API-интерфейсом навигации для подключения к нему после создания, что устранит необходимость в чем-то вроде файла NavigationExtensions.kt. Мы продолжим использовать эту проблему для отслеживания этой работы.

Поэтому вы можете использовать подход NavigationAdvancedSample в своем приложении прямо сейчас и пометить проблему, чтобы получать обновления на тот момент, когда основная проблема будет решена и в Navigation добавлена ​​прямая поддержка.

person Nitesh    schedule 02.08.2019