fragmentstatepageradapter(androidx.fragment.app.fragmentmanager)' is deprecated

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

希望这些信息能帮助你。

  •