在 Fragment 中使用 ViewPager 时出现一个奇怪的错误

I've got a weird bug when using a ViewPager inside a Fragment

好的,我会尽量把它说清楚。我有一个名为 CheckerManager 的片段,其中包含一个 ViewPager。此 ViewPager 将允许用户在 3 个 Fragment 之间滑动,所有这些 Fragment 都是另一个名为 CheckerFragment 的 Fragment 的实例。我正在使用 FragmentPagerAdapter 来处理分页。这是它的样子

private class PagerAdapter extends FragmentPagerAdapter {
    CharSequence mTabTitles[];

    public PagerAdapter(FragmentManager fm, CharSequence tabTitles[]) {
        super(fm);
        mTabTitles = tabTitles;
    }

    @Override
    public Fragment getItem(int position) {
        switch(position) {
            case 0:
                return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_LOTTO);
            case 1:
                return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_DAILY);
            case 2:
                return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_EURO);
            default:
                return null;
        }
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mTabTitles[position];
    }

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

我知道 ViewPager 总是会在当前 Fragment 的任一侧创建 Fragment。假设我的 3 个 CheckerFragment 分别称为 A、B 和 C,当前片段是 A。B 已经创建。但我的问题是,即使我仍在查看片段 A,片段 B 也是 'active' 片段。我所做的每个输入实际上对应于片段 B 而不是 A。活动片段始终是 ViewPager 最后创建的片段。

我看了很多东西,看看是否有人遇到过同样的问题,但我发现很难描述出问题所在。我认为这与所有 ViewPagers 片段都属于同一类型(即 CheckerFragment)这一事实有关。我在应用程序其他地方的片段内有一个 ViewPager 的工作实现,我能说的唯一区别是每个页面都是不同类型的片段。

如有任何帮助,我们将不胜感激!

*编辑

PagerAdapter adapter = new PagerAdapter(getChildFragmentManager(), tabTitles);
    ViewPager viewPager = (ViewPager)view.findViewById(R.id.viewPagerChecker);
    viewPager.setAdapter(adapter);

我觉得自己很蠢,但我发现了问题所在。在我的 CheckerFragment 中,我会调用 getArguments() 来检索一个 String extra,我会用它来确定如何布局片段。问题是我使这个额外的 CheckerFragment 静态成员。因此,每次创建新片段时,它都会使用最新的额外片段。

故事的寓意 - 如果您计划制作该片段的多个实例,请不要让您的片段成为额外的静态成员。