小编Ada*_*ser的帖子

在Fragment中使用ViewPager时,我有一个奇怪的错误

好的,我会尝试尽可能清楚.我有一个名为CheckerManager的片段,它包含一个ViewPager.此ViewPager将允许用户在3个片段之间滑动,所有片段都是另一个名为CheckerFragment的片段的实例.我正在使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道ViewPager将始终在当前片段的任一侧创建片段.所以说我的3个CheckerFragments被称为A,B和C,当前的片段是A.已经创建了B. 但我的问题是,即使我仍然在看片段A,片段B是'活跃的'片段.我创建的每个输入实际上都对应于片段B而不是A.活动片段始终是ViewPager最后创建的片段.

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

任何帮助,将不胜感激!

*编辑

PagerAdapter adapter = new PagerAdapter(getChildFragmentManager(), tabTitles);
    ViewPager viewPager = (ViewPager)view.findViewById(R.id.viewPagerChecker); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-nested-fragment

5
推荐指数
1
解决办法
846
查看次数