Since API 27 FragmentPagerAdapter
is deprecated. What's the best alternative to use for this?
In my case, I understand something like super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
would need to be used, but I don't know where within my code this needs to go.
I got these imports in my class:
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter
but FragmentPagerAdapter
in class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){
is crossed out.
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){ private val fragmentList : MutableList<androidx.fragment.app.Fragment> = ArrayList() private val titleList : MutableList<String> = ArrayList() override fun getItem(position: Int): androidx.fragment.app.Fragment { return fragmentList[position] } override fun getCount(): Int { return fragmentList.size } fun addFragment(fragment: androidx.fragment.app.Fragment, title: String){ fragmentList.add(fragment) titleList.add(title) } override fun getPageTitle(position: Int): CharSequence? { return titleList[position] } }
This function is deprecated.
Implementation of PagerAdapter that represents each page as a Fragment that is persistently kept in the fragment manager as long as the user can return to the page. This version of the pager is best for use when there are a handful of typically more static fragments to be paged through, such as a set of tabs.
ViewPager2 is an improved version of the ViewPager library that offers enhanced functionality and addresses common difficulties with using ViewPager . If your app already uses ViewPager , read this page to learn more about migrating to ViewPager2 .
UPDATE 2021-06-14: At this point, ViewPager
itself is all but deprecated. Technically, ViewPager
is not deprecated, but the two concrete PagerAdapter
implementations — FragmentPagerAdapter
and FragmentStatePagerAdapter
— are deprecated. Ideally, switch to something else, such as ViewPager2
or the pager composable in Accompanist.
Replace:
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager)
with:
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
(assuming that MyViewPagerAdapter
does not need this value to be configurable)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With