FragmentStatePagerAdapter
是一个用于在
ViewPager
中实现页面切换的适配器类,但它已被弃用,建议使用
FragmentStateAdapter
替代。
FragmentStatePagerAdapter
的实现方式是在页面切换时将离开页面的
Fragment
保存在内存中,当内存不足时才会将其销毁。而
FragmentStateAdapter
则是在页面切换时将离开页面的
Fragment
直接销毁,只保留当前页面及前后各一页的
Fragment
。因此,
FragmentStateAdapter
更适合用于管理较多页面的场景,同时也更加节省内存。
示例代码如下:
class MyFragmentStateAdapter(fm: FragmentManager) : FragmentStateAdapter(fm) {
override fun getItemCount(): Int {
return 3
override fun createFragment(position: Int): Fragment {
return when (position) {
0 -> FirstFragment()
1 -> SecondFragment()
2 -> ThirdFragment()
else -> throw IllegalStateException("Invalid position $position")
然后你可以像使用 FragmentPagerAdapter 一样使用 FragmentStateAdapter:
viewPager.adapter = MyFragmentStateAdapter(supportFragmentManager)
另外,如果你希望保留离开页面的 Fragment,并在需要时才将其销毁,你可以使用 FragmentPagerAdapter。
希望这些信息能帮助你。