7

Yönlendirme değişikliği verilen durumu geri yüklemeye çalıştığım iç içe geçmiş bir Fragman var.İç içe geçmiş bir Fragman kaydedilemiyor ve geri yüklenemiyor mu?

Yani öncelikle benim kurulum aşağıda sunulmuştur gibidir: Ancak

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    // Serialize the current dropdown position. 
    outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, getActivity().getActionBar() 
      .getSelectedNavigationIndex()); 
} 

dönmek Bütün LifeCycle olaylarında cihazı yönlendirmek zaman şu şekildedir: My Child fragmanı

Activity -> ParentFragment (SetRetainInstance(true)) -> ChildFragment 

Ben onSaveInstance koduna sahip null'ın bir kaydetme durumu.

Bunu bir ChildFragment için yanlış mı yapıyorum? Devletim neden kurtarılmıyor ve geri dönüyor?

cevap

7

Bu, ana parçanızın setRetainInstance(true) nedeniyle oluşur. Android, tüm çocuk parçalarıyla bir parçayı korur. Yani ChildFragment'iniz yok edilmez ve bu yüzden saveInstanceState'de boş kalırsınız. onCreateView durumlarının belgeler: Burada verilen

savedInstanceState boş olmayan, bu fragman, daha önce kaydedilmiş durumdan yeniden inşa edilmektedir.

setRetainInstance(true) yorumunu göndermeye çalışın ve savedInstanceState için doğru değeri aldığınızdan emin olun.

+0

Bu çözüm sizin için işe yarıyor mu? –

+0

Evet, ama iki yıl önce. :) Belki o zamandan beri bir şey değişti. – Ayzen

İlgili konular