Сделайте это следующим образом
Fragment page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.viewpager + ":" + viewPager.getCurrentItem());
Замените R.id.viewpager
своим идентификатором ViewPager
Вы не можете использовать этот код внутри метода onCreate
, поскольку пользовательский интерфейс фрагментов еще не создан.
В этом случае вы можете сделать это
viewPager.setOffscreenPageLimit(4); // this forces to load 4
setOffscreenPageLimit
используется, чтобы заставить адаптер создать еще 4 страницы после создания первой.Значение по умолчанию - 1. Это полезно только для доступа к невыбранной странице.
Если вам нужно обновить пользовательский интерфейс фрагментов во время создания страницы, вы можете использовать это в onCreate
...
viewPager.setAdapter(adapter);
viewPager.setOffscreenPageLimit(x);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
// here you can set you UI values from page 'i'.
// i = page index
}
@Override
public void onPageSelected(int i) {
// here you can set you UI values from the selected page
// i = page index
// for the first selected page (before scrolling), use onPageScrolled
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
При первом показе фрагмента viewpager
onPageSelected
не запускается, а onPageScrolled
.Таким образом, вы можете поиграть с этими двумя способами, чтобы обновить ваш фрагментный интерфейс.