0

对于一个简单的Fragment A -> Fragment B图表,我有两个问题:

  1. 我可以LiveData使用安全参数通过吗?如果没有,我该如何收听Fragment Bfrom的值变化Fragment A

  2. 我可以使用安全 args传递 lambda 变量(函数) (充当回调侦听器)吗?

4

1 回答 1

0

你不能使用安全的参数传递 LiveData 但你可以使用Fragment Result API来监听其他 Fragment 中的值变化

// in fragment A
setFragmentResultListener("requestKey") { requestKey, bundle ->
    // read bundle here
}
// in fragment B
setFragmentResult("requestKey", bundle)

它可以与您的 SafeArgs 类结合使用:

setFragmentResultListener("requestKey") { requestKey, bundle ->
    val args = MyFragmentArgs.fromBundle(bundle)
}
// Fragment B
setFragmentResult("requestKey", MyFragmentArgs(...).toBundle())
于 2021-01-21T18:45:56.377 回答