Fragment von Viewpager lifecyle

  • Hallo zusammen,


    ich hab ein kleines Problem.
    Ich habe ein ViewPager welcher 3 Fragments beinhaltet. Diese können mit einen Swipe durchgewechselt werden (muss ich glaub ich nicht explizit erklären).
    Wenn ich die Activity mit den ViewPager starte, werden von den ersten zwei Fragments die OnCreateView() Methode aufgerufen.
    Ich frag mich hier schon mal warum nur von den ersten zwei und nicht gleich alle drei... gibt es eine möglichkeit explizit zu sagen das von allen drei Fragments die OnCreateView() Methode aufgerufen werden soll? (Von Fragment 3 wird die Methode erst aufgerufen wenn ich auf das zweite Fragment geswiped habe ?( )


    Das nächste Problem ist wenn ich von Fragment 3 zurück auf Fragment 2 wechsel wird von Fragment 1 wieder die OnCreateView() aufgerufen... warum? :( Wenn ich den Lifecycle richtig interpretiere bedeutet das ja das von Fragment 1 die Methode onDestroyView() automatisch aufgerufen wird sobald ich in das 3. Fragment wechsel...
    (Übrigens ist das auch andersrum so -> also wenn ich von Fragment 1 wieder auf Fragment 2 wechsel wird von Fragment 3 die OnCreateView() Methode aufgerufen)
    Kann ich das verhindern, dass automatisch das Fragment die Methode onDestroyView() aufruft? Also zusammengefasst: Ist es möglich das alle 3 Fragments gleichzeitig ins Leben gerufen werden und auch alle lebendig bleiben :saint: :?:


    Ich wäre euch echt dankbar für ne Erklärung oder ähnliches und falls ich irgendwas komplett falsches geschrieben habe korrigiert mich bitte 8o


    MfG
    Marco

  • Hallo das ist eigentlich einfach erklärt.
    Es werden immer die Nachbar Fragmente vor geladen, da mit sie beim Swipe auch schon zur Verfügung stehen . Es gibt ja einen Moment wo beider Fragmente zur hälfte sichtbar sind.
    Also muss das Layout schon beim Swipe schon fertig geladen sein .das ist die Eigenart des Viewpager. Wenn du in Fragment 2 bist hast du zwei Nachbarn 1 und 3.



    Beim Start Fragment 1 gibt es nur einen Nachbarn.
    Bei 3 gibt es auch nur 2 als Nachbar.




    Die Destroy Methode wird nicht aufgerufen erst beim verlassen des Fragments.




    Zitat

    Kann ich das verhindern, dass automatisch das Fragment die Methode onDestroyView() aufruft? Also zusammengefasst: Ist es möglich das alle 3 Fragments gleichzeitig ins Leben gerufen werden und auch alle lebendig bleiben

    nein , aber die onDestroyView() wird nur von dem Fragment aufgerufen von dem du kommst.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!