I trying to create android app with koin in version 2.2.2 and single activity. I use Navigation Component to navigate beetwen fragments. When I try create ViewPager with 3 fragments I get error: ScopeAlreadyCreatedException: Scope with id 'x.x.x.HomeFragment@132452043' is already created.
In my FragmentX i create adapter to viewpager with 3 fragments: Fragment1, Fragment2 and Fragment3.
Below is the code from the module including the adapter and viewmodel.
scope(named<FragmentX>()) {
factory {
ViewPagerAdapter(
((((get() as ActivityProvider).foregroundActivity) as? FragmentActivity)?.supportFragmentManager!!),
androidContext()
)
}
viewModel { CommonViewModel() }
}
FragmentX:
private val viewModel: CommonViewModel by viewModel()
private val viewPagerAdapter: ViewPagerAdapter by fragmentScope().inject()
Fragment1, Fragment2, Fragment3:
private val viewModel: HomeViewModel by sharedViewModel()
getItem() method from ViewPagerAdapter:
override fun getItem(position: Int): Fragment {
return when (position) {
0 -> Fragment1()
1 -> Fragment2()
else -> Fragment3()
}
}
What am I doing wrong?