-3

我嵌套了Fragments[1 个Fragment名为“MainFrag”的主程序和许多子程序Fragments],该应用程序可以显示 MainFrag 或可以显示其他片段。

我想要做的是每次用户选择显示 MainFrag 时的 MainFrag,所以我试图把它放在它的位置setCurrentItem,但这仅适用于用户第一次显示 MainFrag,就好像用户选择另一个片段然后重新选择 MainFrag不工作ViewPageronCreateViewseCurrentItem

我还尝试将它放在 MainFrag 中onResume,它按要求工作,但它也会导致一个问题,如果用户将应用程序移到后台然后重新打开它 viewPager 将滚动,我不想要这个

那么我到底可以放在setCurrentItem哪里?

mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);

编辑:我正在使用导航菜单在 MainFrag 是其中之一的 3 个主要片段之间移动。

4

3 回答 3

1

在你的mViewPager.setAdapter(adapter);方法之后,你可以把

mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
于 2016-04-25T09:46:11.783 回答
1

将适配器设置为 viewpager 后添加 setCurrentItem 方法

mViewPager.setAdapter(adapter);
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
于 2016-04-25T09:49:05.857 回答
0

尝试这个:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                viewPager.setCurrentItem(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

    }
于 2016-04-25T11:35:00.280 回答