У меня есть основной фрагмент с внутренним просмотрщиком. Этот просмотрщик имеет 2 страницы (фрагменты). Все работает нормально.Фрагмент в ViewPager не отображается сразу
Когда я запускаю действие, отображается основной фрагмент, и я также хочу показать (т. Е. Данные о нагрузке) первого выгружаемого фрагмента.
В настоящее время у меня есть:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
viewPager.setCurrentItem(0);
}
@Override
public void onPageSelected(int position) {
Fragment fragment = (Fragment) pagerAdapter.instantiateItem(viewPager, position);
if (fragment instanceof IPagedFragment) {
((IPagedFragment) fragment).onShown();
}
}
Это пейджера адаптер:
private static class PagerAdapter extends FragmentPagerAdapter {
public PagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
switch (position) {
case 0: return Frag1.newInstance();
case 1: return Frag2.newInstance();
default: return null;
}
}
//Other overrides...
}
Однако, вызов setCurrentItem
не вызывает onPageSelected
.
Как заставить первый фрагмент вызвать его метод onShown
?
Почему 'instantiateItem()', а не 'getItem (position)'? Покажите нам код вашего адаптера, пожалуйста. – shkschneider
Код адаптера @shkschneider добавлен в вопрос. –