我想在片段之间共享视图模型,假设我有一个片段A,它显示带有元素(视图持有者)的回收器视图,当我单击其中一个时,我希望元素显示在片段B 中以获取详细信息视图。到目前为止,我已经确定了两种方法来做到这一点。1)拥有一个在片段之间共享的超级视图模型,并像这样保存所选视图模型的引用:
class ShareHappyPlaceModel : ViewModel() {
val happyPlace: MutableLiveData<HappyPlaceModel> = MutableLiveData()
}
2)将视图模型转换为实现parcable的数据类,并通过fragment之间的导航进行共享。然后在 fragmentB 中从数据类对象重新创建一个视图模型。
第一个似乎并不优雅,因为我宁愿只对 fagementB 提供参考共享,而不是在所有片段中共享。第二个问题是我需要将视图模型转换为中间类。
你有什么意见 ?