我在屏幕上有2个片段,我如何通知第2个在第1个发生了一些事情?现在我使用这个解决方案:
companion object {
private val onFullScreenPressedEvent = SingleLiveEvent<Boolean>()
val onFullScreenPressed: LiveData<Boolean> = onFullScreenPressedEvent
}
并从第二个片段开始观察onFullScreenPressed
我在屏幕上有2个片段,我如何通知第2个在第1个发生了一些事情?现在我使用这个解决方案:
companion object {
private val onFullScreenPressedEvent = SingleLiveEvent<Boolean>()
val onFullScreenPressed: LiveData<Boolean> = onFullScreenPressedEvent
}
并从第二个片段开始观察onFullScreenPressed
1条答案
按热度按时间n53p2ov01#
最好的办法是使用绑定到片段Activity的ViewModel(在片段之间共享),并在那里修改liveData。
示例视图模型
例如,通过使用
implementation "androidx.fragment:fragment-ktx:1.4.0"
,你可以在片段A中做并调用将更改事件
viewModelA.onFullScreen()
的代码那么在片段B中
并观察片段A中触发的liveData
viewModelB.onFullScreenPressed.observe(viewLifecycleOwner, myObserver)