使用导航方向导航到另一个片段时如何保留数据?
How to keep data when navigate to another fragment use navigation direction?
我有 2 个片段:fragment1
和 fragment2
我正在使用 Navigation
导航 fragment1
到 fragment2
:
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
尝试使用实时数据来跟踪您的数据。
我找到了解决方案:
- 使用
View Model
保持LiveData
- 对片段 2 使用
Dialog destinations
。使用 Dialog destinations
访问 https://gist.github.com/utkukutlu/bd2e37253e7184179d923321e3ea72c1 了解更多详情
学到的经验:
- 导航片段只有替换没有添加。我希望导航像添加一样,所以我使用
Dialog destinations
- 我使用
Dialog destinations
,所以当我在 fragment1
中更新数据时,我必须使用 View Model
来保留 LiveData
我有 2 个片段:fragment1
和 fragment2
我正在使用 Navigation
导航 fragment1
到 fragment2
:
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
尝试使用实时数据来跟踪您的数据。
我找到了解决方案:
- 使用
View Model
保持LiveData
- 对片段 2 使用
Dialog destinations
。使用Dialog destinations
访问 https://gist.github.com/utkukutlu/bd2e37253e7184179d923321e3ea72c1 了解更多详情
学到的经验:
- 导航片段只有替换没有添加。我希望导航像添加一样,所以我使用
Dialog destinations
- 我使用
Dialog destinations
,所以当我在fragment1
中更新数据时,我必须使用
View Model
来保留 LiveData