Android-Fragmente, die neu auf die Ausrichtung ändern
Bin ich, eine app zu entwickeln, die im Grunde hat eine ActionBar. Wenn meine app gestartet wird, die Aktivität erzeugt, die Fragmente und legt Sie auf jede Registerkarte, so dass, wenn ich den Schalter bekomme ich andere Ansichten.
Die Probleme, die entstehen, wenn ich versuche, um das Gerät zu drehen. Nach einigen kämpfen habe ich festgestellt, dass Android automatisch neu an den zuvor hinzugefügten Fragmente wie diese:
SummaryFragment.onCreate(Bundle) line: 79
FragmentManagerImpl.moveToState(Fragment, int, int, int) line: 795
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1032
FragmentManagerImpl.moveToState(int, boolean) line: 1014
FragmentManagerImpl.dispatchCreate() line: 1761
DashboardActivity(Activity).onCreate(Bundle) line: 864
...
und dann reproduziere ich die Fragmente als üblich. Also ich habe die "real" - Fragmente, die ich rechnen, um korrekt zu arbeiten und Ihre "versteckten" Android erstellt, Kollegen, die meine app Abstürzen. Wie kann ich dieses Verhalten vermeiden? Ich habe bereits versucht anzurufen, setRetainInstance(false) in der SummaryFragment.
Danke
InformationsquelleAutor der Frage Luke47 | 2012-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie überprüfen, ob ein savedInstanceState [edit: in deinem übergeordneten Aktivität], und wenn es vorhanden ist, erstellen Sie nicht Ihr Fragmente.
InformationsquelleAutor der Antwort Barak
Beim erstellen Ihrer Tätigkeit, stellen Sie sicher, dass es nicht bereits vorhanden ist. Falls vorhanden, nichts tun...Android wird es neu für Sie.
InformationsquelleAutor der Antwort Damian
Wenn Sie die ähnliche ui(keine spezifische layout-Flächen-Dateien) für beide Ausrichtungen können Sie festlegen
android:configChanges="keyboardHidden|orientation"
um die Aktivität in Ihrer manifest-Datei.Wenn nicht, geben Sie bitte den source-code, wo Sie hinzufügen möchten die Fragmente auf Registerkarten, und ich werde versuchen, Ihnen zu helfen mit Verbesserungen.
InformationsquelleAutor der Antwort Orest
Ich bin nicht sicher, ob es eine bessere Lösung, aber das ist, was ich im aktuellen Programm.
Wenn ein fragment ist automatisch erstellt vom system auf die Ausrichtung ändern und wenn Sie möchten, den überblick zu behalten in der host-Aktivität, fangen Sie in der host-Aktivität
OnAttachFragment()
Methode. Und Sie bekommen die Argumente standardmäßig, so dass Sie Sie verwenden können, um herauszufinden, welches fragment es ist.InformationsquelleAutor der Antwort avil