FragmentPagerAdapter 已弃用

新手上路,请多包涵

由于 API 27 FragmentPagerAdapter 已弃用。最好的替代方法是什么?

就我而言,我知道需要使用 super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) 类的东西,但我不知道我的代码中需要使用它。

我在课堂上得到了这些进口商品:

 import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter

但是 FragmentPagerAdapterclass MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){ 被划掉了。

 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]
        }
    }

原文由 wbk727 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.1k
2 个回答

更新 2021-06-14 :此时, ViewPager 本身几乎已被弃用。 Technically, ViewPager is not deprecated, but the two concrete PagerAdapter implementations — FragmentPagerAdapter and FragmentStatePagerAdapter — are deprecated.理想情况下,切换到其他内容,例如 ViewPager2Accompanist 中可组合的寻呼机

代替:

 class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager)

和:

 class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)

(假设 MyViewPagerAdapter 不需要这个值是可配置的)

原文由 CommonsWare 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏