【问题标题】:Android Jetpack Navigation Pass Lambda/Delegate between FragmentsAndroid Jetpack Navigation Pass Lambda/Delegate 在 Fragments 之间
【发布时间】:2019-03-15 17:56:38
【问题描述】:

当 A 通过 findNavController().navigate(R.id.action_a_to_b) 转换到 B 时,我想将 lambda 从片段 A 传递到片段 B。用例是 B 帮助挑选出一个项目以显示在屏幕 A 上。

类似:

// In A
findNavController().navigate(R.id.action_a_to_b, configBlock: { fragmentB ->
    fragmentB.itemSelectedCallback = this::itemSelected
})

我认识到这种模式不太适合 Google 所推动的(我假设他们希望共享观察到的视图模型,其中片段之间不相互通信)但我还不打算过渡到那种架构风格。

【问题讨论】:

  • 如果您不想翻译成该模型,您可能需要重新考虑使用导航库。
  • Lambda 无法在配置更改或进程死亡中幸存下来,因此这种回调方式在许多实际情况下是有损的。

标签: android kotlin androidx android-jetpack


【解决方案1】:

这还不可能,但是,有一个 existing feature request 可以导航到结果,这将使您获得这种类型的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多