Search code examples
androidandroid-fragmentskotlinandroid-viewpager

Fragment's onCreateView doesn't get called when attached to viewpager


I'm trying to use a ViewPager that contains a fragment. When I add a fragment using a FragmentPagerAdapter it doesn't work, and I noticed the 'onCreateView' function doesn't get called. I tried following some tutorials but I can't seem to find the problem.

Here is the code:

class GuestListFragment : Fragment()
{

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    println("onCreateView")
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_guest_list, container, false)
    }

}


class EventPagerAdapter(fragmentManager: FragmentManager): FragmentPagerAdapter(fragmentManager)
{

    override fun getCount(): Int
    {
        return 0
    }

    override fun getItem(position: Int): Fragment
    {
        println("getItem")
        return GuestListFragment()
    }
}


class EventActivity : AppCompatActivity()
{

    private lateinit var viewPager: ViewPager

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

        viewPager = findViewById(R.id.guests_view_pager)
        val pagerAdapter =  EventPagerAdapter(supportFragmentManager)
        pagerAdapter.getItem(0)
        viewPager.adapter = pagerAdapter

        })

    }
}

Solution

  •  Change return count to 1 in getCount()
    
     override fun getCount(): Int
     {
        return 1
     }