android - FragmentPagerAdapter 已弃用

标签 android kotlin android-viewpager fragmentmanager fragmentpageradapter

自 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 实现 - FragmentPagerAdapterFragmentStatePagerAdapter - 已被弃用。理想情况下,切换到其他内容,例如 ViewPager2the 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/

相关文章:

kotlin - 我该如何解决这个错误 "Kotlin: [Internal Error] java.lang.ExceptionInInitializerError"

java - 如何让 ViewPager 全屏显示?

Android Facebook SDK 降低应用性能

kotlin - SnapshotStateList 如何检测发生了更改?

android - 多个 AsyncHttpClient 获取填充一个 Activity 的请求

android - 在android q中如何获取android文档目录的路径?

android - ViewPager : onMapReady() is never called after calling getMapAsync() 中 fragment 中的 MapView

java - 如何仅在 fragment 可见时调用 onCreateView?

Android 媒体播放器循环无间隙(歌曲开始和结束时无静音)

android - ListView 项目 ListSelector 可绘制闪烁