如何在自定义视图中使用Dagger 2?

时间:2017-07-15 22:33:59

标签: android dependency-injection dagger-2

我阅读文档并发现,我可以使用注入Activity对象 “HasActivityInjector”和Fragment对象带有“HasFragmentInjector”,但如何注入View对象?就像我有自定义视图而不是片段一样,如何注入呢?

1 个答案:

答案 0 :(得分:1)

您可以在组件内部声明inject方法,如

fun inject(view: YourCustomView)

然后,当您在某些活动或片段上使用视图时,请致电

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        yourCustomView.inject(component)
}

component可以从注射中的片段\活动onCreate内获得。

在您的观点中,您需要实施inject方法,如下所示:

fun inject(component: Component) {
        component.inject(this)
    }

就是这样,现在您可以从自定义视图中的组件中注入所有内容。