【发布时间】:2020-06-17 11:32:36
【问题描述】:
我目前正在尝试从 dagger-android 迁移到 Hilt。以前我使用@Bind 将片段和活动的实例绑定到相应的 MVP 视图合约。有没有办法对 Hilt 做同样的事情?它似乎无法注入特定的片段和活动?
【问题讨论】:
-
你能给出一个你想要替换的示例代码sn-p吗?
标签: dagger-hilt
我目前正在尝试从 dagger-android 迁移到 Hilt。以前我使用@Bind 将片段和活动的实例绑定到相应的 MVP 视图合约。有没有办法对 Hilt 做同样的事情?它似乎无法注入特定的片段和活动?
【问题讨论】:
标签: dagger-hilt
我们需要一些代码来给出正确的答案,但我认为你需要类似的东西
@InstallIn(ActivityComponent::class)
@Module
abstract class MyScreenModule {
@ActivityScoped
@Binds
abstract fun bindMyScreenFragment(impl: ScreenFragment): MyScreenContract.View
@ActivityScoped
@Binds
abstract fun bindMyScreenPresenter(impl: ScreenPresenter): MyScreenContract.Presenter
}
别忘了:
注意:考虑是否应该将 Presenter 绑定到 Fragment 生命周期。在这种情况下,演示者绑定应该有它自己的模块标记为 @InstallIn(FragmentComponent::class) 并且绑定范围为@FragmentScoped
【讨论】: