当我从上层碎片传递到下层碎片时,我试图在碎片之间传递数据,但是我不想使用Navigation方法。它为流程历史记录添加了一个新的目的地,但是我想回到上一个片段,恢复它的数据并刷新视图。 可以使用NavController和popBackStack方法来做到这一点吗?
答案 0 :(得分:0)
几个小时后,我找到了一个奇怪的解决方案。 findNavController().popBackStack()
无法将数据传递到上一个片段,但是我们可以使用findNavController().graph.defaultArguments
来完成,将数据设置在一个片段中,并在第二个片段中获取数据。我相信有人会找到更好的解决方案。
答案 1 :(得分:0)
我也遇到了同样的问题,并且使用了下面的有效解决方案,但是我不确定它的正确方法与否。
val navOptions = NavOptions.Builder().setPopUpTo(R.id.id_of_fragment_one, true).build()
view?.findNavController()?.navigate(R.id.id_of_fragment_one, bundleOf("id" to model), navOptions)