Где разместить метод "ViewPager.setCurrentItem()"
Я вложил Fragments
[1 основной Fragment
называется "MainFrag" и много детей Fragments
] приложение может показывать MainFrag или другие фрагменты.
что я хочу сделать, это setCurrentItem
MainFrag's ViewPager
каждый раз, когда пользователь выбирает, чтобы показать, что MainFrag, поэтому я пытался поставить его на это onCreateView
но это работает только в первый раз, когда пользователь показывает MainFrag, как будто пользователь выбирает другой фрагмент, а затем повторно выбирает MainFrag seCurrentItem
не работает
Я также попытался поместить это в MainFrag's onResume
, Он работал как требуется, но это также вызывает проблему, что если пользователь переместил приложение в фоновый режим, а затем снова открыл его, viewPager будет прокручивать, и я не хочу этого
Так куда конкретно можно положить setCurrentItem
?
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
Изменить: я использую меню навигации для перемещения между 3 основными фрагментами, где MainFrag является одним из них.
3 ответа
После вашего 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) {
}
});
}