【发布时间】: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