使用导航架构组件时在 Activity 和 Fragment 之间进行通信
Communicating between Activities and Fragments when using Navigation Architecture Component
我想让主持人 Activity 知道片段中发生了什么事情。传统上,我会有一个带有片段可以调用的回调的接口,但现在我们正在使用导航架构组件。
有没有办法将对主机 activity 的引用传递给片段,否则我该如何解决 "Communication between activities and fragments" 情况?
谢谢!
您可以将 LiveData 数据持有者 class 用于此类目的。
Here 是一篇解释 Fragment <--> Fragment
沟通和 Activity <--> Fragment
沟通的文章。
您可以在 activity 和所有片段之间共享一个 ViewModel。并在该 viewModel 中使用 liveData。因此,当片段中发生某些事情时,您会更改 liveData 并观察 activity
中的 liveData
您可以使用共享 ViewModel (https://developer.android.com/topic/libraries/architecture/viewmodel#sharing)
它会在 activity 存在时处于活动状态,并且所有子片段都可以访问它。
例如,可以在所有片段中收听共享视图模型中的 LiveData。如果其中一个片段更改了数据,所有其他片段都会得到该更改。
我想让主持人 Activity 知道片段中发生了什么事情。传统上,我会有一个带有片段可以调用的回调的接口,但现在我们正在使用导航架构组件。
有没有办法将对主机 activity 的引用传递给片段,否则我该如何解决 "Communication between activities and fragments" 情况?
谢谢!
您可以将 LiveData 数据持有者 class 用于此类目的。
Here 是一篇解释 Fragment <--> Fragment
沟通和 Activity <--> Fragment
沟通的文章。
您可以在 activity 和所有片段之间共享一个 ViewModel。并在该 viewModel 中使用 liveData。因此,当片段中发生某些事情时,您会更改 liveData 并观察 activity
中的 liveData您可以使用共享 ViewModel (https://developer.android.com/topic/libraries/architecture/viewmodel#sharing)
它会在 activity 存在时处于活动状态,并且所有子片段都可以访问它。
例如,可以在所有片段中收听共享视图模型中的 LiveData。如果其中一个片段更改了数据,所有其他片段都会得到该更改。