FragmentStatePagerAdapter for Nested Pager (en fragment de la navigation inferior) está vacío

Estoy trabajando en un calendar en mi aplicación y estoy usando un FragmentStatePagerAdapter para proporcionar datos a ViewPager (1 mes = una página)

El problema es que cuando return de otro fragment de mi navigation inferior, el localizador está vacío.

Aquí está mi código:

class AgendaFragment: Fragment() { internal var mAdapter: CustomPagerAdapter2? = null var selectedDate = Date() companion object { var frag: AgendaFragment? = null val fragments = ArrayList<CalendarFragment>() fun getInstance(): AgendaFragment { if (frag == null) { frag = AgendaFragment() } return frag!! } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { if (fragments.count() == 0) { fragments.add(CalendarFragment.newInstance(0, this)) fragments.add(CalendarFragment.newInstance(1, this)) fragments.add(CalendarFragment.newInstance(2, this)) fragments.add(CalendarFragment.newInstance(3, this)) } if (mAdapter == null) { mAdapter = CustomPagerAdapter2(fragmentManager, fragments) } return inflater.inflate(R.layout.fragment_agenda, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) view?.pager?.setAdapter(mAdapter) view?.pager?.currentItem = mAdapter!!.count / 2 } internal class CustomPagerAdapter2(fm: FragmentManager, frags: List<CalendarFragment>) : FragmentStatePagerAdapter(fm), ObjectAtPositionInterface { var mFrags: List<CalendarFragment> = ArrayList() var maxValue = 120 init { mFrags = frags } fun refreshAll() { CalendarAdapter.updateLists() for (frag in mFrags) { frag.notifyUpdate() } } override fun getItem(position: Int): Fragment { val index = position % mFrags.size val month = position - (maxValue / 2) var frag = mFrags[index] (mFrags[index] as CalendarFragment).changeMonth(month) return frag } override fun getObjectAtPosition(position: Int): Any { val index = position % mFrags.size val month = position - (maxValue / 2) var frag = mFrags[index] (mFrags[index] as CalendarFragment).changeMonth(month) return frag } override fun getCount(): Int { return maxValue } } } 

He intentado toneladas de soluciones, pero ninguna de ellas funcionó.

La única solución que encontré fue volver a crear el adaptador, pero eso es un poco demasiado pesado …