匕首2将依赖注入片段?匕首堆栈?
我在我的应用程序中使用了Dagger 2 DI框架。目前,我正在为我的身份验证活动创建目录结构。匕首2将依赖注入片段?匕首堆栈?
我有一个AppComponent和AppModule,它们的作用域是ApplicationScope注释。
对于具有@ActivityScope的个人活动。我有一个名为AuthenticationActivity的活动,它唯一的工作就是呈现两个片段 - LoginFragment和SignUpFragment,以便用户可以滑动ViewPager以在两者之间切换。现在,我的问题是我应该如何安排我的匕首堆栈?我是否需要创建为LoginFragment子组件,例如像
@Subcomponent(modules{})
public interface AuthenticationComponent{
LoginComponent plus(LoginModule module);
}
而且我LoginComponent可能看起来类似的东西:
@Subcomponent(modules{LoginModule.class})
public interface LoginComponent{
void inject(LoginFragment fragment);
}
我的应用程序组件将类似于:
@Component(modules={AppModule.class})
public interface AppComponent{
AuthenticationComponent plus(AuthenticationModule module);
}
我只是想知道是否有更优雅的方式(例如,避免创建AuthenticationComponent)提前谢谢!任何建议将不胜感激!
我认为两个示波器(ApplicationScope
和ActivityScope
)就足够了。只需通过特定的活动组件注入片段即可。
嗨!谢谢您的回答。不过,我并没有问天气,也没有在活动中注入整个片段。我只是问我是否需要这个AuthenticationComponent,因为堆栈的深度达到2级(有两个子组件) –
我不确定我是否理解你,但你绝对不需要两个子组件。 – YMY
我明白了。谢谢您的回答! :) –
您可以。你不需要。哎呀,如果你想要的话,你可以只有1个全局组件完成所有工作。问题是你认为你通过拥有一个子组件可以得到什么样的价值?我在这里看不到太多。 –
@GabeSechan感谢您的评论。我不认为我正在向AuthenticationActivity注入任何东西。这个活动的目的是通过使用viewpager来展示这两个片段。所以我想我没有获得任何有价值的认证活动子组件。 –
@GabeSechan我想我有这么多嵌套的子组件混淆,我自动以为我做错了(第一次在一个大项目中使用Dagger 2) –