FragmentStatePagerAdapter和FragmentPagerAdapter已弃用,怎么办,有什么好的方法可以替代,又该如替代?

新手上路,请多包涵

image.png
如图所示,该继承类已经被抛弃了,请问如何办?

阅读 2.5k
1 个回答

你用FragmentStateAdapter就好了,它可以用于 ViewPager2 组件。首先你要添加 ViewPager2 依赖项。在项目的 build.gradle 文件中添加以下依赖项:


dependencies {
    implementation 'androidx.viewpager2:viewpager2:1.1.0'
}

在布局文件中使用 ViewPager2 替换 ViewPager:

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

创建一个新的适配器,继承自 FragmentStateAdapter:


import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter

class MyFragmentStateAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {

    private val fragmentList = mutableListOf<Fragment>()

    override fun getItemCount(): Int {
        return fragmentList.size
    }

    override fun createFragment(position: Int): Fragment {
        return fragmentList[position]
    }

    fun addFragment(fragment: Fragment) {
        fragmentList.add(fragment)
    }
}

在 Activity 或 Fragment 中设置适配器:

val viewPager = findViewById<ViewPager2>(R.id.view_pager)
val adapter = MyFragmentStateAdapter(this)
adapter.addFragment(FirstFragment())
adapter.addFragment(SecondFragment())
viewPager.adapter = adapter

这样就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进