Вы правы, есть лучший способ сделать это!
Посмотрите на FragmentPagerAdapter javadoc онлайн, и вы увидите, что естьМетод setPrimaryItem (контейнер ViewGroup, позиция int, объект Object): void делает именно то, что вам нужно.
Из javadoc
public void setPrimaryItem (контейнер ViewGroup, позиция int, объект Object)
Вызывается, чтобы сообщить адаптеру, какой элемент в настоящее время считается «основным», то есть тот, который отображается пользователю в качестве текущей страницы.
Контейнер параметров Содержащий вид, из которого будет удалена страница.position Позиция страницы, которая сейчас является основной.объект Тот же объект, который был возвращен instantiateItem (View, int).
Примечание о состоянии прокрутки
Теперь, если вы реализуете это и начинаете отладку, чтобы получитьощущение того, когда именно это вызывается, вы быстро заметите, что это срабатывает несколько раз при подготовке фрагмента и пока пользователь проводит пальцем.
Так что было бы неплохо также присоединить ViewPager.OnPageChangeListener и делать то, что должно быть сделано, только когда состояние прокрутки виджетов становится SCOLL_STATE_IDLE снова.1033 *