查看依赖注入

时间:2015-10-20 08:31:56

标签: android dagger

如何为视图提供依赖关系(android.view.View)?我在匕首中看到的大多数例子都是通过视图的上下文提供的,但这看起来并不是很容易组合的。假设我有一个双窗格视图,我希望封闭视图为主视图和详细视图提供依赖关系。如果使用嵌套视图中的上下文,依赖项仍将由活动提供,而不是由封闭视图提供。一种解决方案是将上下文传递给嵌套视图,但这会使通胀变得困难。这不是一个特别的匕首问题。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将一些依赖关系传递给您的View。据我所知,您可以像在Activity中一样注入依赖项。使用Dagger 2,您可以定义组件,模块,接口并使用@Inject注释。它应该工作。我实际上还没有在Views中使用过注射剂。我通常在活动中使用它们,只是将一些数据(如String,Integer,对象列表,自定义对象等)传递给View。我认为,观点应尽可能简单,我不确定在其中使用注射是否正确。也许它可能是一个非常具体的解决方案。

答案 1 :(得分:0)

您可以在视图树上进行盲目遍历,询问每个父母是否有应该使用的注射器。

或者,您可以让封闭视图负责注入,而不是让嵌套视图尝试注入自己。毕竟,即使匕首的示例指南显示对象注入自己,一般来说依赖注入应该是另一种方式:其他东西注入我们。