是否可以使用 dagger2 注入内容视图

is it ok to inject content view using dagger2

我在我的 android 项目中使用 数据绑定 ,我还在 dagger 2 中使用 DI.

基本上,为了使用数据绑定设置内容视图,我需要做这样的事情:

LayoutClass layoutClass = DataBindingUtil.setContentView(Activity, Layout);

我在匕首 模块 中提供 layoutClass 并将其注入我的 activity。问题是,这是一个好习惯吗?

从技术上讲,您是在用它定义一个循环引用。您只是没有收到警告,因为设置图表需要您对此积极主动。

当您显式为模块提供 activity 时,依赖项看起来像 activity -> layout -> activity。此外,您正在使用 DataBindingUtil.setContentView() 修改 activity,因此提供对 activity 的依赖,这实际上是 activity 本身的 属性。

因此,永远不要为 Dagger 提供任何 UI。尤其是 activity.