当片段中发生某些事情时,我想让主机 Activity 知道。传统上,我会有一个带有 Fragment 可以调用的回调的接口,但现在我们使用导航架构组件。
有没有办法将对主机活动的引用传递给片段,或者我将如何解决“活动和片段之间的通信”情况?
谢谢!
当片段中发生某些事情时,我想让主机 Activity 知道。传统上,我会有一个带有 Fragment 可以调用的回调的接口,但现在我们使用导航架构组件。
有没有办法将对主机活动的引用传递给片段,或者我将如何解决“活动和片段之间的通信”情况?
谢谢!
您可以在您的活动和所有片段之间拥有一个共享的 ViewModel。并在该视图模型中使用 liveData。因此,当片段中发生某些事情时,您会更改 liveData 并观察活动中的 liveData
您可以使用共享 ViewModel ( https://developer.android.com/topic/libraries/architecture/viewmodel#sharing )
当活动存在并且所有子片段都可以访问它时,它将是活动的。
例如,可以在所有片段中收听共享视图模型中的 LiveData。如果其中一个片段更改了数据,所有其他片段都会得到该更改。