Ich versuche, FragmentTabHost in einer Fragment from v4-Support-Bibliothek in FragmentActivity zu verwenden. Diese Ausnahme wird beim Debuggen in der Aktivität OnCreate ausgelöst, da Alex auf eine mögliche Bedingung hingewiesen hat, aber die Fragmenttransaktion in der Aktivität oncreate noch immer festschreibt. Wegen dieser Ausnahme wird meine Aktivität mit leeren Tabcontent mit Tabs angezeigt.
Hinweis: - 1) Ich habe die Bildschirmdrehung gesperrt - keine Ausrichtungsbedingung. 2) Dies geschieht in der Aktivität oncreate, die in den anfänglichen statges ist 3) Ich verwende commit () in der Aktivität OnCreate () 4) Als Protokollpunkte wird die Commit-Beziehung im TabHost nicht von meiner Seite ausgeführt.
Hier ist mein Protokoll: -
%Vor%Dies ist mein Code
Aktivität:
%Vor%Fragment mit FragmentTabHost, das an die Aktivität angehängt wird
// SplitFragment.java
%Vor%Fragment, das als Tabcontent für das FragmentTabHost fungiert:
%Vor%Layout von FragmentTabHost:
%Vor%Ich habe eine Lösung dafür:
Es ist hässlich, aber es funktioniert.
Ursprünglich dachte ich, das wäre wahrscheinlich ein Rotationsproblem. Aber mit deinen zusätzlichen Details denke ich, dass ich das Problem sehe.
Sie initialisieren Ihren Tabhost in einem Fragment onCreateView. In onCreateView wurde das Fragment noch keiner Aktivität hinzugefügt; Es wird einfach gefragt um das Layout zu erstellen. Es ist wahrscheinlich, dass der Sitzungsstatus noch nicht wiederhergestellt wurde (soweit es den Fragment-Transaktionsmanager betrifft), da er sich im Wesentlichen in der Mitte von Gebäude befindet (fügt die Ansichten ein).
Verschieben Sie den Tabhost-Init-Code in onActivityCreated, der nach dem Einfügen der Ansicht aufgerufen wird. I. E.:
%Vor%Wenn immer noch Zischanfälle auftreten, versuchen Sie, es auf onResume zu verschieben (was sicherlich darauf zurückzuführen ist, dass der Status wiederhergestellt wurde).
Tags und Links android-fragments