Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不推荐使用碎片页雷达_Android_Kotlin_Android Viewpager_Fragmentmanager_Fragmentpageradapter - Fatal编程技术网

Android 不推荐使用碎片页雷达

Android 不推荐使用碎片页雷达,android,kotlin,android-viewpager,fragmentmanager,fragmentpageradapter,Android,Kotlin,Android Viewpager,Fragmentmanager,Fragmentpageradapter,由于API 27FragmentPagerAdapter已被弃用。最好的替代方法是什么 在我的例子中,我理解需要使用super(fragmentManager,BEHAVIOR\u RESUME\u ONLY\u CURRENT\u FRAGMENT)之类的东西,但我不知道这需要在我的代码中放在哪里 我在班上学到了这些东西: import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPage

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

在我的例子中,我理解需要使用
super(fragmentManager,BEHAVIOR\u RESUME\u ONLY\u CURRENT\u FRAGMENT)
之类的东西,但我不知道这需要在我的代码中放在哪里

我在班上学到了这些东西:

import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
但是
FragmentPagerAdapter
类MyViewPagerAdapter(管理者:FragmentManager):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]
        }
    }
类MyViewPagerAdapter(管理器:FragmentManager):FragmentPagerAdapter(管理器){
private val fragmentList:MutableList=ArrayList()
private val titleList:MutableList=ArrayList()
覆盖有趣的getItem(位置:Int):androidx.fragment.app.fragment{
返回碎片列表[位置]
}
重写fun getCount():Int{
返回fragmentList.size
}
fun addFragment(片段:androidx.fragment.app.fragment,标题:String){
碎片列表。添加(碎片)
标题列表。添加(标题)
}
覆盖有趣的getPageTitle(位置:Int):字符序列{
返回标题列表[位置]
}
}

更新2021-06-14:目前,
ViewPager
本身几乎被弃用。从技术上讲,
ViewPager
并没有被弃用,但两个具体的
PagerAdapter
实现--
FragmentPagerAdapter
FragmentStatePagerAdapter
都被弃用。理想情况下,切换指向其他内容,例如
ViewPager2

替换:

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


(假设
MyViewPagerAdapter
不需要配置此值)

javadocs实际上有以下弃用通知:


此类已弃用。

切换到并改用



似乎不仅没有行为的构造函数,而且类
FragmentPagerAdapter
(通过将片段保存在内存中可以消耗大量内存)和
FragmentStatePagerAdapter
都处于弃用阶段。
我想知道什么可以用来扩展抽象类
PagerAdapter
来延长代码库的使用寿命。

需要切换到ViewPager2,这里有迁移指南


为什么我在添加@suppressint(“错误常量”)后需要这个在构造函数FractPrimeAdvultServ.RefuMyLyOnLyCurrnEngRead?@ @ AsasMuktHar中添加这个:我不知道,抱歉。您可能会考虑问一个单独的堆栈溢出问题,在这里您可以提供一个显示您正在尝试的内容以及在哪里应用注释。我猜是为了获取生命周期参数。或者,您可以说
@SuppressWarnings(“弃用”)
如果
查看页面2
破坏了你的应用程序行为:D@EpicPandaForce:同意,尽管谷歌最终将停止更新androidx.viewpager:viewpager。即使如此,在更新oth时,您可能仍可以使用上次发布的版本一段时间,在某些可传递的依赖项或某些东西破坏构建之前这周我们不必比赛和更换
ViewPager
,但我会在未来一两年的某个时候推荐它。如果你想扩展ViewPager,这个解决方案不起作用,因为
ViewPager2
公共决赛
。Henrik Bøgelund Lavstsen,欢迎链接到解决方案,但请确保你的回复没有r是有用的:因此您的其他用户将知道它是什么以及它为什么存在,然后引用您链接到的页面的最相关部分,以防目标页面不可用。
class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)