Ich versuche eine App zu erstellen, die ein Buch im Hoch- und Querformat zeigt. Offensichtlich gibt es 1 Seite im Portrait und 2 im Querformat. Jeder der Modi funktioniert ziemlich gut, aber wenn ich die Ausrichtung von Hochformat zu Querformat ändere, versucht der viewPager, 2 Seiten aus dem Hochformat zu bekommen, anstatt zu versuchen, 2 Doppelseiten aus dem Querformat zu bekommen ... Tatsächlich behält FragmentStatePagerAdapter die 2 im Hochformat erstellten Fragmente und verwendet sie, bevor sie 2 Doppelseiten für den Querformatmodus erstellen . Wenn ich erneut im Hochformat wechsle, verwendet FragmentStatePagerAdapter die 2 Fragmente, die zuvor im Querformat erstellt wurden, sodass ich wieder 1 Doppelseite statt 1 Einzelseite usw. sehe. Wenn ich die Orientierung weiter wechsle, bekomme ich einen OutOfMemoryError aufgrund der Tatsache, dass FragmentStatePagerAdapter niemals Spülen Sie die Fragmente bei der Orientierungsänderung.
Hier sind zwei Anwendungsfälle zum besseren Verständnis:
Ich wische nach rechts und ich sehe Seite 5 und 6 in Ordnung
Ich starte den viewPager im Hochformat
Ich wische nach links und ich sehe Seite 2 und 3 ok
%Vor%}
%Vor%Ich habe gelesen, dass der FragmentManager im Framework den Zustand speichert und alle aktiven Fragmente wiederherstellt, die der Pager erzeugt hat. Ich denke also, wenn sich die Ausrichtung ändert, sagt der FragmentManager
Hey! Ich habe bereits 2 Artikel erstellt, also muss ich keine Nachrichten erstellen, lass sie holen
Aber tatsächlich bekommt es die 2 Elemente (Seite / Doppelseite) aus dem alten Orientierungsmodus. Also muss ich einen Weg finden, die Fragmente zu löschen, die vom FragmentManager gespeichert wurden, wenn die Orientierung geändert wird.
Ich habe auch diese Methode getestet. Das Problem scheint mit diesem
zu tun zu habenMit freundlichen Grüßen
Versuchen Sie, die Ausrichtung auf Hoch- oder Querformat zu beschränken. Weil wir den Pager nur im genauen Modus verwenden können.
Tags und Links android screen-orientation android-fragments android-viewpager fragment