Ваша getViewModel
функция получает лямбда, которая производит ViewModel, в качестве параметра. И в этом случае вы можете сделать что-то вроде этого:
val param1 = ...
val param2 = ...
val param3 = ...
getViewModel {
YourViewModel(param1, param2, param3...)
}
Лямбда, переданная в getViewModel
, захватывает все параметры. А позже вы вызываете эту лямбду по адресу ViewModelFactory
и создаете ViewModel:
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return creator() as T
}