【问题标题】:How to extends FragmentPagerAdapter class?如何扩展 FragmentPagerAdapter 类?
【发布时间】:2021-01-04 07:38:09
【问题描述】:

当我尝试扩展他们的类时,我的 Android Studio 页面代码中不推荐使用 FragmentPagerAdapter。这个问题很烦人。我搜索了很多,但没有找到任何结果。 请查看以下页面

package com.example.buyown;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

public class PageAdapter  extends FragmentPagerAdapter {

int tabCount;
public PageAdapter(@NonNull FragmentManager fm, int behavior) {
    super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT );
    tabCount= behavior;
}

@NonNull
@Override
public Fragment getItem(int position) {

    switch (position){
        case 0:return new buyOwnTab1();
        case 1:return new buyOwnTab2();
        default: return null;
    }


}

@Override
public int getCount() {
    return tabCount;
}
}

【问题讨论】:

    标签: fragmentpageradapter


    【解决方案1】:

    https://developer.android.com/reference/androidx/fragment/app/FragmentPagerAdapter 的文档说:

    此类已弃用。

    切换到 ViewPager2 并改用 FragmentStateAdapter。

    虽然从技术上讲,基于 FragmentPagerAdapter 与 FragmentStateAdapter 的内部结构,FragmentPagerAdapter 很容易理解,因为它依赖于 findFragmentByTag + attach + detach + add,而 FragmentStateAdapter 和 ViewPager2 依赖于 RecyclerView 和 "定期执行 gcFragments() 调用”,这非常棘手,因此除非您明确要求 ViewPager2 支持的新行为,否则没有理由从 ViewPager 切换 - 因为标准 ViewPager 还依赖于 Fragments 支持的标准机制。

    这就是为什么@SuppressWarnings("deprecation") 有时也是一个有效的解决方案,尽管并非总是如此。

    IIRC,主要区别在于更简单的垂直滑动支持和更好的 RTL 支持。

    【讨论】:

    • 你能修改我的代码吗,事实上我认为那里不合适..?
    • 您的代码没问题,只需删除tabCount 并返回2 并在这种情况下忽略弃用警告
    • 那我该如何使用 (setOnTabSelectedListner) 事件呢?
    • 这听起来不像是原始问题的一部分?
    猜你喜欢
    • 2020-06-22
    • 2013-03-30
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多