gpt4 book ai didi

android - 如何使用 sharedview 模型 koin android 注入(inject)具有作用域的 View 模型

转载 作者:行者123 更新时间:2023-12-05 00:13:17 28 4
gpt4 key购买 nike

需要澄清一件事,现在我正在处理一个流程,其中我有两个 View 模型,一个依赖于另一个 View 模型,为了处理这件事,我尝试在我的基本 Activity 中注入(inject)两个 View 模型,这是我遇到的问题,用这种方法。每次我尝试访问这些 View 模型时,Base Activity 都会向我返回新实例,有什么方法可以管理该 View 模型的范围,这样我就可以轻松访问它的属性而无需添加额外的 Api 调用。

模块类

    val homeModule= module {

single { HomeDispatcher(get(), get()) }
viewModel { HomeViewModel (get()) }
}

**Main Activity**

import org.koin.android.viewmodel.ext.android.viewModel

class NotificationActivity : BaseActivity() {

private val viewModel: HomeViewModel by inject()

private val viewModel: HomeViewModel by viewModel()
}



class NotificationsFragment : BaseFragment() {

private val viewModel: HomeViewModel by viewModels({requireActivity()})

private val viewModelx: HomeViewModel by activityViewModels



}

> by using viewModels({requireActivity()}) getting instance not found.

Hilt 更新

   implementation "androidx.activity:activity-ktx:1.2.0"

private val viewModelx: HomeViewModel by viewModels

上面提到的库有用于直接延迟注入(inject) View 模型的 View 模型。

最佳答案

import org.koin.android.viewmodel.ext.android.viewModel
import org.koin.android.viewmodel.ext.android.sharedViewModel

private val viewModel: HomeViewModel by viewModel()

因此使用 viewModel() 解决了这个问题在 Activity 和sharedViewModel<MyViewModel>()在 fragment 类中

关于android - 如何使用 sharedview 模型 koin android 注入(inject)具有作用域的 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66236876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com