我有这个Dagger 2配置:
AppComponent.kt
@Singleton
@Component(
modules = [
AndroidSupportInjectionModule::class,
AppModule::class,
ActivityBindingModule::class,
]
)
interface AppComponent : AndroidInjector<AppApplication> {
@Component.Builder
abstract class Builder : AndroidInjector.Builder<AppApplication>()
}
Run Code Online (Sandbox Code Playgroud)
ActivityBindingModule.kt
@Module
abstract class ActivityBindingModule {
@ActivityScoped
@ContributesAndroidInjector(
modules = [
MainActivityModule::class,
FragmentModule::class //a fragment factory for each activity
]
)
internal abstract fun mainActivity(): MainActivity
}
Run Code Online (Sandbox Code Playgroud)
MainActivityModule.kt
@Module(subcomponents = [LoginFragmentSubcomponent::class])
abstract class MainActivityModule {
//uncommenting this works fine but Fragment can't be scoped
//@Binds
//@IntoMap
//@FragmentKey(LoginFragment::class)
//abstract fun bindLoginFragment(loginFragment: LoginFragment): Fragment
//...other things which …Run Code Online (Sandbox Code Playgroud)