#android #kotlin #android-viewmodel #view-model-pattern
#Android #котлин #android-viewmodel #вид-модель-шаблон
Вопрос:
Вот мой класс MineSweeperView:
class MineSweeperView : View {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
private var userViewModel: UserViewModel
init {
....
userViewModel = ViewModelProvider(???).get(UserViewModel::class.java)
}
ViewModelProvider(this) и (context) не работают в классе View.
Ответ №1:
Вы не можете этого сделать. Было бы неправильно, чтобы представление имело класс ViewModel. ViewModels предназначены только для LifecycleOwners, поскольку они ограничены жизненным циклом LifecycleOwner. В этом вся причина существования ViewModel, чтобы его жизненный цикл контролировался жизненным циклом какого-либо другого объекта жизненного цикла.
Комментарии:
1. О-о-о, спасибо вам!