【问题标题】:Bind Fragment/Activity to MVP View contract with Dagger Hilt使用 Dagger Hilt 将 Fragment/Activity 绑定到 MVP View 合同
【发布时间】:2020-06-17 11:32:36
【问题描述】:

我目前正在尝试从 dagger-android 迁移到 Hilt。以前我使用@Bind 将片段和活动的实例绑定到相应的 MVP 视图合约。有没有办法对 Hilt 做同样的事情?它似乎无法注入特定的片段和活动?

【问题讨论】:

  • 你能给出一个你想要替换的示例代码sn-p吗?

标签: dagger-hilt


【解决方案1】:

我们需要一些代码来给出正确的答案,但我认为你需要类似的东西

@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

}

别忘了:

  • 将“@Inject”添加到 Fragment 和 Presenter 构造函数
  • 将@AndroidEntryPoint 添加到MyScreenActivity 和MyScreenFragment

注意:考虑是否应该将 Presenter 绑定到 Fragment 生命周期。在这种情况下,演示者绑定应该有它自己的模块标记为 @InstallIn(FragmentComponent::class) 并且绑定范围为@FragmentScoped

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
相关资源
最近更新 更多