我正在使用导航组件来展示一个
1)
2)
3)
注意:我的用例是
对于我来说,只有 1)或 2)是正确的。现在我想知道,1)和 2)之间有什么区别吗?
DialogFragment
(在navigation.xml
中的<dialog...>...</dialog>
),并想知道关闭对话框的推荐方式。我尝试了以下方法并得到以下结果:1)
DialogFragment
中的dismiss()
:似乎可以正常工作。2)
findNavController().navigateUp()
:似乎可以正常工作。3)
findNavController().navigate(MyDialogFragmentDirections.actionMyDialogFragmentToMyNormalFragment())
:可以工作,但会加载目标目的地的新版本,因此根据用例的不同,这可能不是所需的行为。注意:我的用例是
MyNormalFragment
使用MyDialogFragment
获取一些输入,因此在显示MyDialogFragment
后,我需要返回到已经存在的MyNormalFragment
实例。对于我来说,只有 1)或 2)是正确的。现在我想知道,1)和 2)之间有什么区别吗?
AlertDialog
,那么这些按钮已经内部解除对话框,就像点击对话框外部一样。导航仍然监听这些事件并为您更新导航状态。如果您在取消/保存按钮中使用navigate()
,我会确保该操作也弹出对话框(即通过使用popUpTo
)- 这将确保先记录对话框弹出,然后再导航到新目标。 - ianhanniballake