Android

BottomSheetDialogFragment에서 Dagger 사용하기

c0de_h0ng 2021. 12. 6. 23:59
728x90

프로젝트에 Dagger2 작업을 설정하였으면 Activity에서는 DaggerActivity(), Fragment에서는 DaggerFragment()를 각각 상속하면 해당 SubComponent가 빌드 시에 생성된다. 하지만 BottomSheet 중에 BottomSheetDialogFragment에서는 DaggerBottomSheetDialogFragment()라는 것이 없어서 고민하던 중 GitHub에 한 개발자가 만들어 놓아 주셔서 이를 프로젝트에 적용하였다. 코드는 아래와 같다.(너무나 감사합니다ㅠㅠ)

open class DaggerBottomSheetDialogFragment : BottomSheetDialogFragment(), HasSupportFragmentInjector {

    @Inject lateinit var mChildFragmentInjector: DispatchingAndroidInjector<Fragment>

    override fun onAttach(context: Context) {
        AndroidSupportInjection.inject(this)
        super.onAttach(context)
    }

    override fun supportFragmentInjector(): AndroidInjector<Fragment> {
        return mChildFragmentInjector;
    }
}

출처 : https://gist.github.com/ryanamaral/658583c020622e0fae70caf3fed9867b