javaandroidandroidxandroid-tablayoutandroid-viewpager2

How to use TabLayout with ViewPager2 in Android


I want to use com.google.android.material.tabs.TabLayout component with Android's new ViewPager implementation androidx.viewpager2.widget.ViewPager2. However, the setupWithViewPager(..) method provided by TabLayout supports only the old ViewPager implementation. Is there a way to bind a TabLayout to a ViewPager2 component easily?


Solution

  • You have to use this TabLayoutMediator that mimics tabLayout.setupWithViewPager() and sets up the ViewPager2 with Tablayout. Otherwise, you will have to write your own adapter that will combine both parties.

    Its code will look like this in Kotlin

    TabLayoutMediator(tabLayout, viewPager) { tab, position ->
      tab.text = tabTitles[position]
    }.attach()