匕首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)提前谢谢!任何建议将不胜感激!

+1

您可以。你不需要。哎呀,如果你想要的话,你可以只有1个全局组件完成所有工作。问题是你认为你通过拥有一个子组件可以得到什么样的价值?我在这里看不到太多。 –

+0

@GabeSechan感谢您的评论。我不认为我正在向AuthenticationActivity注入任何东西。这个活动的目的是通过使用viewpager来展示这两个片段。所以我想我没有获得任何有价值的认证活动子组件。 –

+0

@GabeSechan我想我有这么多嵌套的子组件混淆,我自动以为我做错了(第一次在一个大项目中使用Dagger 2) –

我认为两个示波器(ApplicationScopeActivityScope)就足够了。只需通过特定的活动组件注入片段即可。

+0

嗨!谢谢您的回答。不过,我并没有问天气,也没有在活动中注入整个片段。我只是问我是否需要这个AuthenticationComponent,因为堆栈的深度达到2级(有两个子组件) –

+1

我不确定我是否理解你,但你绝对不需要两个子组件。 – YMY

+0

我明白了。谢谢您的回答! :) –