Ich fand ein sehr seltsames Verhalten von View Pager. Bei der Verwendung von FragmentPagerAdapter beobachtete ich, dass getItem() in der richtigen Reihenfolge aufgerufen wurde, dh Position 0, Position 1, Position 2 ...... , aber die onCreateView() wird in umgekehrter Reihenfolge aufgerufen, dh Position 2, Position 1, Position 0 (unter der Annahme, dass der Ansichtspager 3 Offscreen-Seiten verwaltet) Was ich denke, dass Viewpager irgendwie einen Stapel dieser Fragmente beibehält. Wenn es erforderlich ist, Ansichten zu erstellen, wird das aktivste Fragment aus dem Stapel entfernt, damit es als onCreateView() bezeichnet wird.Was ist die Reihenfolge des onCreateView() - Methodenaufrufs von Fragmenten beim Verwenden von Pager?
Also meine Frage ist, können wir die Reihenfolge des Aufrufs von onCreateView() steuern? Wenn nicht, kann ich die Netzwerkanforderungen, die ich beim Aufruf von onCreateView() erstelle, so bestellen, dass Netzwerkanforderungen von Fragment 0 zuerst ausgeführt werden sollen, dann Fragment 1 und dann Fragment 2. Aber ich denke, das würde ein anderes Problem verursachen, wie ich Ich führe die UI-bezogene Aufgabe aus, nachdem die Netzwerkanforderung abgeschlossen wurde und wenn onCreateView() bisher nicht aufgerufen wurde, dann werden die UI-Elemente möglicherweise nicht initialisiert. Also, was ist der beste Weg, um diese Netzwerk-Anrufe in der richtigen Reihenfolge zu machen, dh für Fragment 0, dann 1, dann 2 und so weiter ....
Vielleicht kann ich nicht die Aufrufe von onCreateView() ..... aber es muss ein Weg sein, so dass ich meinen eigenen View-Pager neu implementieren oder vorhandenen Viewpager überschreiben könnte, so dass ich sagen könnte, anstatt zu verwenden Stapel für das Halten von Fragmenten Seiten, sollte es Warteschlange verwenden. Damit konnte ich diese Fragmente in FIFO-Reihenfolge instantiieren. – charlie