2013-06-19 56 views
6

解僱後我有一個嵌套的片段,顯示我的PhotoNoteDialogFragment(!):嵌套DialogFragment被旋轉

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

的對話框彈出,但得到只要我旋轉設備駁回。我已經做了一些研究,並嘗試這些東西沒有成功:

  • set PhotoNoteDialogFragment#setRetainInstance(true)。不起作用,因爲嵌套的碎片不能被保留。

  • 使用在PhotoNoteDialogFragment此代碼段,以防止把從系統中不需要的解僱電話中的錯誤:

 
    @Override 
    public void onDestroyView() { 
     if (getDialog() != null) 
      getDialog().setDismissMessage(null); 
     super.onDestroyView(); 
    } 
  • 嘗試調用展() - 方法,我的分片嵌套#onActivityCreated,如果PhotoNoteDialogFragment實例北京時間NOT NULL:
 
    @Override 
    public void onActivityCreated(final Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if (mPhotoNoteDialogFragment != null) { 
     mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); 
    } 
    } 

這些嘗試都不會使屏幕旋轉後DialogFragment再次出現。 有其他人有一個想法,我可以嘗試下一個..?我沒有想法。

THX

+0

您是否使用了不同的縱向和橫向模式佈局...... – Amsheer

+0

您如何添加根片段?你確定它是由系統保留的,還是你手動重新創建它? –

+0

@Amsheer:是的,我有不同的嵌套片段和dialogFragment的佈局。 – muetzenflo

回答

0

我覺得你不必重寫onActivityCreated,你的對話是沒有它的罰款。我也試過了。如果您在onActivityCreated上顯示對話框,則您的應用將崩潰。