使用导航方向导航到另一个片段时如何保留数据?

How to keep data when navigate to another fragment use navigation direction?

我有 2 个片段:fragment1fragment2

我正在使用 Navigation 导航 fragment1fragment2:

val action = Fragment1Directions.actionFragment1ToFragment2()
navController.navigate(action)

我的 fragment1 包含 RecyclerView 数据更改。当我单击 fragment1 中的项目时,RecyclerView 将打开 fragment2。当我按下后退按钮时,我返回 fragment1 并丢失数据。

我想在移动到 fragment2 并返回到 fragment1 时保留我的数据(fragment2 就像网络中的弹出窗口)。我该怎么做。

更新:

我用View Model来保持LiveData。但是当我从 fragment2 返回到 fragment1 时,fragment1 重新加载。如何打开 fragment2 并保持 fragment1(临时打开 fragment2)。我正在使用 Navigation

尝试使用实时数据来跟踪您的数据。

我找到了解决方案:

  1. 使用View Model保持LiveData
  2. 对片段 2 使用 Dialog destinations。使用 Dialog destinations
  3. 访问 https://gist.github.com/utkukutlu/bd2e37253e7184179d923321e3ea72c1 了解更多详情

学到的经验:

  1. 导航片段只有替换没有添加。我希望导航像添加一样,所以我使用 Dialog destinations
  2. 我使用 Dialog destinations,所以当我在 fragment1
  3. 中更新数据时,我必须使用 View Model 来保留 LiveData