2013-06-19 10 views
6

Mam zagnieżdżony fragment, który pokazuje mój PhotoNoteDialogFragment (!)Zagnieżdżony DialogFragment zostanie odwołany po obróceniu

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

dialogowe wyskakuje, ale zostaje odrzucona, jak tylko obrócić urządzenie. Zrobiłem już kilka badań i próbował te rzeczy bez powodzenia:

  • ustawionej PhotoNoteDialogFragment # setRetainInstance (true). Nie działa, ponieważ zagnieżdżone Fragmenty nie mogą zostać zachowane.

  • Użyj tego fragmentu kodu w PhotoNoteDialogFragment aby zapobiec błąd, który stawia niechciany odrzucenie połączenia z systemu:

 
    @Override 
    public void onDestroyView() { 
     if (getDialog() != null) 
      getDialog().setDismissMessage(null); 
     super.onDestroyView(); 
    } 
  • spróbować zadzwonić show() - metoda w moim zagnieżdżonego Fragment #onActivityCreated jeżeli wystąpienie PhotoNoteDialogFragment ist niezerowy:
 
    @Override 
    public void onActivityCreated(final Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if (mPhotoNoteDialogFragment != null) { 
     mPhotoNoteDialogFragment.show(getFragmentManager(), PhotoNoteDialogFragment.TAG); 
    } 
    } 

Żadna z tych prób nie spowodowałaby ponownego pojawienia się DialogFragment po obróceniu ekranu. Czy ktoś jeszcze pomysł, co mogę spróbować dalej ...? Nie mam pomysłów.

thx

+0

Czy używałeś innego układu dla trybu portretu i krajobrazu ... – Amsheer

+0

Jak dodajesz fragment główny? Czy jesteś pewien, że został zachowany przez system, czy też tworzysz go ręcznie? –

+0

@Amsheer: Tak, mam różne układy dla zagnieżdżonego fragmentu, a także dla okna dialogowegoFragment. – muetzenflo

Odpowiedz

0

Chyba nie trzeba zastąpić onActivityCreated, twój dialog jest dobrze bez niego. Próbowałem też. Jeśli wyświetlisz okno dialogowe na onActivityCreated Twoja aplikacja ulegnie awarii.

Powiązane problemy