我有一个活动,里面有一个片段( ParentFragment )。
ParentFragment 有一个片段,其导航控制器包含多个片段。
ParentFragment的 ViewModel具有标题,字幕和颜色属性。
每次我导航到另一个片段时,应该更新 ParentFragment的 ViewModel数据(这些片段就是带有数据的片段),我该如何实现?
我知道如何共享一个viewModel,它不适合项目需求,每个片段都应该有其viewModel, ParentFragment 也是一样。
class ParentFragment: Fragment() {
private lateinit var parentViewModel: ParentViewModel
}
class ChildFragment: Fragment() {
private lateinit var childViewModel: ChildViewModel
}
class ParentViewModel : ViewModel() {
var title: String? = null
var subtitle: String? = null
var color: Int? = null
}
class ChildViewModel : ViewModel() {
init {
// I need to access ParentViewModel and update title, subtitle and color here.
}
}
答案 0 :(得分:1)
您需要在 ChildViewModel
中实现 ParentViewModelclass ChildViewModel : ParentViewModel() {
init {
title = "Title"
subtitle = "Sub Title"
color = -123454
// I need to access ParentViewModel and update title, subtitle and color here.
}
}