自 API 27 FragmentPagerAdapter
起,已弃用。为此使用的最佳替代方案是什么?
就我而言,我知道需要使用诸如 super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
之类的东西,但我不知道需要在代码中的何处使用。
我在类里面导入了这些内容:
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
但是 class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){
中的 FragmentPagerAdapter
被划掉了。
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]
}
}
最佳答案
更新 2021-06-14:此时,ViewPager
本身几乎已被弃用。从技术上讲,ViewPager
并未被弃用,但两个具体的 PagerAdapter
实现 - FragmentPagerAdapter
和 FragmentStatePagerAdapter
- 已被弃用。理想情况下,切换到其他内容,例如 ViewPager2
或 the pager composable in Accompanist .
替换:
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager)
与:
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
(假设MyViewPagerAdapter
不需要此值可配置)
关于android - FragmentPagerAdapter 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56778106/