Search code examples
androidandroid-viewpager2

Fragment in ViewPager2 blank upon second viewing


Currently, i have the below adapter implemented with a ViewPager2 instance

upon initial load FeedFragment loads its data and is visible and fine. By the time I scroll away to the 3rd or so fragment and come back, FeedFragment is blank until I touch it and then it reappears. what is causing this blank state?

    FragmentStateAdapter(fragmentManager, lifecycle) {

    override fun getItemCount(): Int = 5

    override fun createFragment(position: Int): Fragment {
        // Return a NEW fragment instance in createFragment(int)
        return when (position) {
            0 -> FeedFragment()
            else -> Fragment()
        }
    }
}

Solution

  • Maybe this can help.

    private var feedFragment: FeedFragment? = null
    private var someOtherFragment: SomeOtherFragment? = null
    
    override fun createFragment(position: Int): Fragment {
        when (position){
            0 -> {
                if (feedFragment == null) {
                     feedFragment = FeedFramgment.getInstance()
                }
                return feedFragment
            }
            1 -> {
                if (someOtherFragment == null) {
                     someOtherFragment = SomeOtherFragment.getInstance()
                }
                return someOtherFragment
            }
            else -> {
                return Fragment()
            }
        }
        
    }