【发布时间】:2021-02-17 06:40:06
【问题描述】:
需要澄清一件事,现在正在处理一个我有两个视图模型并且一个依赖于另一个视图模型的流程,为了处理我尝试在我的基本活动中注入两个视图模型遇到的问题,用这种方法。每次我尝试访问这些视图模型时,Base Activity 都会向我返回新实例,有什么方法可以管理该视图模型的范围,以便我可以轻松访问其属性而无需添加额外的 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.
刀柄更新
implementation "androidx.activity:activity-ktx:1.2.0"
private val viewModelx: HomeViewModel by viewModels
上述库有视图模型,可以直接懒惰地注入视图模型。
【问题讨论】:
标签: android kotlin dependency-injection koin koin-scope