Kodein Framework - делегат свойства должен иметь метод provideDelegate (...) - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь создать приложение со следующей архитектурой: LoginActivity -> MainActivity -> все остальное обрабатывается во фрагментах, размещенных в MainActivity. Я также впервые использую Kodein Framework и получаю следующую ошибку в моем начальном фрагменте:

У делегата свойства должен быть метод 'provideDelegate (HomeFragment, KProperty *>'. Ни один из Подходят следующие функции: provideDelegate (Context [выделено красным], KProperty <<em>>?), определенный в org.kodein.di. android .KodeinPropertyDelegateProvider Тип «KodeinPropertyDelegateProvider» не имеет метода getValue (HomeFragment, KProperty <</em>>) 'и, таким образом, он не может служить делегатом

Пока это мой код:

class HomeFragment : Fragment(), KodeinAware {

override val kodein by kodein()
private val factory : MainViewModelFactory by instance()
private lateinit var viewModel: MainViewModel

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    val binding : FragmentHomeBinding = FragmentHomeBinding.inflate(inflater, container, false)

    viewModel = ViewModelProviders.of(this, factory).get(MainViewModel::class.java)
    binding.viewModel = viewModel

    return binding.root
}

}

Как я могу это исправить ?

Спасибо:)

1 Ответ

0 голосов
/ 08 апреля 2020

Неважно, добавление объявления типа после того, как kodein добился цели ...:)

...