ViewPager2 пересоздание фрагментов
У меня есть три фрагмента
MainFragment // Фрагмент с ViewPager2
ItemFragment // Фрагмент айтема адаптера ViewPager2, который содержит RecyclerView
PreviewFragment // Фрагмент на который я перехожу после нажатия на любой айтем RecyclerView в ItemFragment
Всё бы ничего, но есть проблема.
Когда я перехожу MainFragment -> PreviewFragment (именно так, не из ItemFragment) то при возврате назад ItemFragment пересоздается с нуля.
Оно и понятно ведь в OnCreateView я делаю так:
viewPager.adapter = MyAdapter(this)
// Добавляю айтемы
Пробовал сохранять MyAdapter вот так:
private val adapter: MyAdapter by lazy {
MyAdapter(this)
}
Но приводит к крашу, все решения которые там описаны мне не помогали.
Еще пробовал где ни будь сохранять фрагменты, в каком ни будь репозитории и там их кешировать и потом добавлять, но это приводит к куча утечкам в LeakCanary у ViewPager2.
В общем то хотелось бы услышать как решается данная проблема, а именно нужно как-то сохранять стейт у айтемов ViewPager2, возможно их и правда нужно кешировать где-то, но у меня чё-то не получилось.