2013-06-19 6 views
6

Ich habe ein verschachteltes Fragment, das mein PhotoNoteDialogFragment zeigt (!):Nested DialogFragment wird nach der Drehung entlassen

private void newPhotoNote() { 
    mPhotoDialog = PhotoNoteDialogFragment.newInstance(this); 
    mPhotoDialog.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); 
} 

Der Dialog erscheint, wird aber so schnell entlassen, da ich das Gerät drehen. Ich habe bereits einige der Forschung und versucht, diese Dinge ohne Erfolg:

  • Satz PhotoNoteDialogFragment # setRetainInstance (true). Funktioniert nicht, da verschachtelte Fragmente nicht beibehalten werden können.

  • Mit diesem Code-Schnipsel in PhotoNoteDialogFragment einen Fehler zu verhindern, die ein unerwünschten entlassenen Anruf aus dem System setzt:

 
    @Override 
    public void onDestroyView() { 
     if (getDialog() != null) 
      getDialog().setDismissMessage(null); 
     super.onDestroyView(); 
    } 
  • Versuchen Sie, rufen Sie die Show() - Methode in meinem verschachtelten Fragmente #onActivityCreated, wenn die Instanz des PhotoNoteDialogFragment iSt nicht null:
 
    @Override 
    public void onActivityCreated(final Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if (mPhotoNoteDialogFragment != null) { 
     mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); 
    } 
    } 

Keiner dieser Versuche konnte dazu führen, dass das DialogFragment nach der Bildschirmdrehung wieder aufgerufen wurde. Hat sonst jemand eine Idee, was ich als nächstes versuchen könnte ..? Ich habe keine Ideen mehr.

thx

+0

Haben Sie ein anderes Layout für Hoch- und Querformat verwendet? – Amsheer

+0

Wie fügen Sie das Wurzelfragment hinzu? Sind Sie sicher, dass es vom System beibehalten wird oder Sie es manuell neu erstellen? –

+0

@Amsheer: Ja, ich habe verschiedene Layouts für das verschachtelte Fragment sowie für das Dialogfeldfragment. – muetzenflo

Antwort

0

Ich glaube, Sie müssen onActivityCreated nicht außer Kraft setzen, ist Ihr Dialog ohne es in Ordnung. Ich habe es auch versucht. Wenn Sie den Dialog unter onActivityCreated anzeigen, stürzt Ihre App ab.