Android использует dagger2 для создания адаптера viewpager, не показывающего фрагменты после воссоздания активности - PullRequest
1 голос
/ 19 сентября 2019

У меня в MainActivity есть просмотрщик, который добавляет 10 фрагментов в свой адаптер.Я создаю модуль кинжала, который предоставляет адаптер ViewPager синглетного типа.

@Module
class FragmentModule(val fm : FragmentManager) {

    @Provides
    @Singleton
    fun getViewPagerAdapter() : MainViewPagerAdapter {
        val adapter = MainViewPagerAdapter(fm)
        val categoryList : ArrayList<CategoryModel> = MyDataBase.getCategoryList()
        for (item in categoryList ) {
            val fragment = MainFragment()
            val bundle = Bundle()
            bundle.putParcelable(Options.bundle_catModel, item)
            fragment.arguments = bundle
            adapter.addFragment(fragment, item.name)
        }
        return adapter
    }

}

и внедряю этот адаптер в MainActivity:

class MainActivity : BaseActivity(), MainView { 
   .
   .
   .
    @Singleton
    @Inject
    lateinit var fragmentsAdapter: MainViewPagerAdapter

    override fun onCreate(savedInstanceState: Bundle?) { 
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)

       App.getComponent(supportFragmentManager).inject(this) //pass supportFragmentManager to FragmentModule as parameter

       viewpager.apply {
           this.adapter = fragmentsAdapter
           tabLayout.setupWithViewPager(this)
         }
   .
   .
   .
}

Когда я воссоздаю действие, чтобы изменить тему, мой просмотрщик не показывает фрагменты,Я проверил, что мои фрагменты создаются, видимость моего viewPager видна, а высота viewPager не равна 0. Но это не будет отображаться!Кто-нибудь знает, где проблема?

...