Sie haben Recht, es gibt einen besseren Weg, dies zu tun!
Wenn Sie sich das FragmentPagerAdapter- Javadoc online ansehen, werden Sie feststellen, dass es eine Methode setPrimaryItem gibt (ViewGroup-Container, int-Position, Objektobjekt): void genau das tun, was Sie brauchen.
Aus dem Javadoc
public void setPrimaryItem (ViewGroup-Container, int-Position, Objektobjekt)
Wird aufgerufen, um den Adapter darüber zu informieren, welches Element derzeit als "primär" betrachtet wird. Dies ist das Element, das dem Benutzer als aktuelle Seite angezeigt wird.
Parametercontainer Die enthaltende Ansicht, aus der die Seite entfernt wird. position Die Seitenposition, die jetzt die primäre ist. object Das gleiche Objekt, das von instantiateItem (View, int) zurückgegeben wurde.
Hinweis zum Bildlaufstatus
Wenn Sie dies jetzt implementieren und mit dem Debuggen beginnen, um ein Gefühl dafür zu bekommen, wann genau dies aufgerufen wird, werden Sie schnell feststellen, dass dies mehrmals beim Vorbereiten des Fragments und beim Wischen des Benutzers ausgelöst wird.
Daher ist es möglicherweise eine gute Idee, auch einen ViewPager.OnPageChangeListener anzuhängen und erst dann das zu tun, was zu tun ist, wenn der Bildlaufstatus des Viewpagers wieder SCOLL_STATE_IDLE wird.