0

Welche Fragment Lifecycle-Methoden (onCreate, onViewCreate, onStart) werden aufgerufen, nachdem Sie ViewPager mit, sagen wir, 10 Fragmente und Aufruf setCurrentItem (9)?Lifecycle of ViewPager

Wird es einen Unterschied geben, wenn Sie setCurrentItem (i, false) aufrufen?

+0

Um Ihre zweite Frage zu beantworten, lesen Sie einfach die Dokumentation ... „Smooth \t boolean: Wahr bewegen glatt an der neuen Sache zu, falsch sofort für den Übergang“ kann –

+0

Die erste Frage leicht durch das Debuggen beantwortet werden, selbst . –

+0

@ cricket_007, die nicht antwortet, wird onStart für alle Fragmente aufgerufen oder nicht. – aleien

Antwort

1

Welche Fragment Lifecycle-Methoden (onCreate, onViewCreate, onStart) aufgerufen, nachdem Sie Setup ViewPager

Jede Lifecycle Methode Sie erwähnt und onAttach, onResume und onActivityStarted genannt werden. Daran ändert nichts, was einen ViewPager betrifft. Informationen zum Fragment-Lebenszyklus finden Sie unter this picture.

Wird es einen Unterschied geben, wenn Sie setCurrentItem (i, false) aufrufen?

Nein, false hat keinen Einfluss auf den Lebenszyklus. Das einzige, was false tun wird, ist den Übergang sofort auf die Seite statt reibungslos über den ViewPager.

Die , onStop, etc.-Methoden können aufgerufen werden, nachdem Sie aus der Sicht eines Fragments scrollen, aber das war nicht Teil Ihrer Frage. ..

+0

Vielen Dank für die Klarstellung, obwohl ich noch eine verwirrende Sache habe. Es scheint, dass onStart nicht für jedes Fragment aufgerufen wird, das an viewPager übergeben wird, wenn wir setCurrentItem (i, false) aufrufen, um genau zu sein, wird es für 0, 1, i und 2 seiner Nachbarnpositionen aufgerufen.Wird es möglich, onStart aufzurufen NUR auf ** i ** fragment und seine Nachbarn, überspringe andere? – aleien

+1

Der Grund dafür ist, dass nur die aktuelle plus die Nachbarn sichtbar sind und man schnell eine Position in beide Richtungen scrollen und nicht mehr Fragmente gleichzeitig in den Speicher laden kann Brauchst du? d, um ein Fragment gezielt anzusprechen, aber andere zu überspringen? –

+0

Weil ich einige Informationen aus dem Web in Fragmente laden möchte, sobald sie für den Benutzer sichtbar sind, aber vorher nicht. Ich möchte den Aufruf onStart auf Fragmente, die nicht sichtbar sind (d. H. 0 und 1 Positionen) zu beseitigen. Ist das möglich? – aleien