"ViewPager.setCurrentItem()"方法放在哪里
Where to put "ViewPager.setCurrentItem()" Method
我有嵌套 Fragments
[1 个主 Fragment
调用 "MainFrag" 和许多子 Fragments
]
App可以显示MainFrag,也可以显示其他片段。
我想做的是每次用户选择显示 MainFrag 时 setCurrentItem
of MainFrag 的 ViewPager
所以我试图把它放在它的 onCreateView
但这只有效第一次用户显示 MainFrag 就好像用户选择另一个片段然后重新选择 MainFrag seCurrentItem
不工作
我也尝试将它放在 MainFrag 的 onResume
中,它按要求工作,但它也会导致一个问题,如果用户将应用程序移动到后台然后重新打开它,viewPager 会滚动,而我不会想要这个
那么我到底可以把 setCurrentItem
放在哪里?
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
编辑:我正在使用导航菜单在 3 个主要片段之间移动,其中 MainFrag 是其中之一。
在你的mViewPager.setAdapter(adapter);
方法之后你可以把
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
将适配器设置为 viewpager 后添加 setCurrentItem 方法
mViewPager.setAdapter(adapter);
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
试试这个:
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) {
}
});
}
我有嵌套 Fragments
[1 个主 Fragment
调用 "MainFrag" 和许多子 Fragments
]
App可以显示MainFrag,也可以显示其他片段。
我想做的是每次用户选择显示 MainFrag 时 setCurrentItem
of MainFrag 的 ViewPager
所以我试图把它放在它的 onCreateView
但这只有效第一次用户显示 MainFrag 就好像用户选择另一个片段然后重新选择 MainFrag seCurrentItem
不工作
我也尝试将它放在 MainFrag 的 onResume
中,它按要求工作,但它也会导致一个问题,如果用户将应用程序移动到后台然后重新打开它,viewPager 会滚动,而我不会想要这个
那么我到底可以把 setCurrentItem
放在哪里?
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
编辑:我正在使用导航菜单在 3 个主要片段之间移动,其中 MainFrag 是其中之一。
在你的mViewPager.setAdapter(adapter);
方法之后你可以把
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
将适配器设置为 viewpager 后添加 setCurrentItem 方法
mViewPager.setAdapter(adapter);
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
试试这个:
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) {
}
});
}