代码之家  ›  专栏  ›  技术社区  ›  vihkat

带参数的导航组件.popbackbackbackback()

  •  3
  • vihkat  · 技术社区  · 6 年前

    我有两块碎片。 SecondFragment ThirdFragment 是的。实际上,我使用导航组件在片段之间传递值。这样地:

    第二片段 以下内容:

    val action = SecondFragmentDirections.action_secondFragment_to_thirdFragment().setValue(1)
    
    Navigation.findNavController(it).navigate(action)
    

    下面是我如何从 三分之一 以下内容:

     arguments?.let {
               val args = ThirdFragmentArgs.fromBundle(it)
               thirdTextView.text = args.value.toString()
           }
    

    工作很好。现在我的堆栈是这样的:

    ThirdFragment
    
    SecondFragment 
    

    对于打开的 三分之一 到上一个 第二片段 使用新的导航组件?(当第三个碎片完成时)

    我知道onActivityResult,但如果nav.component提供的解决方案比我想要的更好,请使用它。

    谢谢您!

    1 回复  |  直到 5 年前
        1
  •  0
  •   Kayvan N    6 年前

    你要的是反模式。你也应该

    • 使用要设置的新值再次导航到第二个片段

    • 在单独的活动中使用第三个片段,并以 startActivityForResult()

    • 使用viewmodel或某种singleton模式来保存数据(确保不再需要数据后将其清除)

    这些是我想到的一些模式。希望有帮助。

    推荐文章