2

我使用兩張重疊DialogFragment(我知道,也許這不是一個好的設計模式),和我有方向的變化問題。重疊DialogFragment,在錯誤的順序重新定位時改變

enter image description here

當方向變化,其中最外部DialogFragment(最小的)去背後的最內部。

我的應用程序的最簡單的解決方案可以是關閉最外部的DialogFragment,但我無法做到這一點,因爲setRetainInstance(false)似乎不適用於DialogFragment

片段被dinamically加,稱:

DialogFragment fragment = CreateEventFragment.newInstance(0); 
fragment.show(getFragmentManager(), CreateEventFragment.FRAGMENT_TAG); 
+0

您可以從層次結構,而不是解聘刪除這兩個片段。 –

回答

1

我解決了這個問題,壓倒一切的onSaveInstanceState,在這樣:現在

@Override 
    public void onSaveInstanceState(Bundle outState) { 
     if(outState==null) 
      super.onSaveInstanceState(outState); 
    } 

,orentation變化之後,最外層DialogFragment是mainteined外部的,所以它們以正確的順序重新創建。