Android导航-是否可以使用popBackStack方法从上部片段还原捆绑包?

时间:2018-10-07 10:55:25

标签: android kotlin android-architecture-components

当我从上层碎片传递到下层碎片时,我试图在碎片之间传递数据,但是我不想使用Navigation方法。它为流程历史记录添加了一个新的目的地,但是我想回到上一个片段,恢复它的数据并刷新视图。 可以使用NavController和popBackStack方法来做到这一点吗?

2 个答案:

答案 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)