SORU
27 NİSAN 2011, ÇARŞAMBA


Bunu doğru bir şekilde içe geçmiş bir yığın bırakarak, temiz-up Parça geri yığını için mi?

Android Compatbility kitaplık bir parça başka bir parça patlar olan bir düğme içeren fragements uygulamak ve düzeni örnek uzadığı için kullanıyorum.

5 seçilebilir öğeler var solda seçim bölmesi - A, B, C, D, E

Ayrıntılar bir parça her yükleri (FragmentTransaction ile değiştir:) bölmesi - a, b, c, d, e

Şimdi fragement 'e' bir parça 'e1' da Ayrıntılar bölmesinde. yükler bir düğme içeren genişletilmiş ettim Parçanın 'e"aşağıdaki gibi özelliği yöntem . bu yaptığım

FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details_frag, newFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();

Eğer aşağıdaki seçimleri yaparsam:

E - e - e1 - D - E

O zaman parçası 'e' ayrıntılar bölmesi. Bu ne istediğimi gayet iyi. Eğer 'geri' bu noktada düğmesi hiçbir şey yapmaz. vurdum ancak, Çünkü iki kere tıklayın 'e1' hala üzerinde yığını. Ayrıca etrafında tıkladıktan sonra onCreateView null işaretçi istisna var:

Bu sorun, aşağıdaki eklediğim zaman C D E 'seçilir:.' B çözmek için

FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount();   i) {
    fm.popBackStack();
}

Farklı bir şey yapmam gerekmediğini, bu doğru çözüm olup olmadığını merak ediyorum?

Şimdiden teşekkürler. Peter

CEVAP
12 Mayıs 2011, PERŞEMBE


Peki bu konuda istenen davranış bağlı olarak gitmek için birkaç yolu vardır, ama bu link sana en iyi çözümleri ve Dianne Hackborn gelen şaşırtıcı olmayan bir şekilde, tüm vermeli

http://groups.google.com/group/android-developers/browse_thread/thread/d2a5c203dad6ec42

Aslında aşağıdaki seçenekler vardır

  • İlk geri için adı devlet yığın ve kullanın FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE).
  • FragmentManager.getBackStackEntryCount()/getBackStackEntryAt().getId()kullanın arkadan ilk giriş KİMLİĞİ yığın almak ve FragmentManager.popBackStack(int id, FragmentManager.POP_BACK_STACK_INCLUSIVE).
  • FragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) tüm geri... belgelerine bence yığını pop gerekiyordu. bu çok yanlış. (Aslında sanırım sadece dava nerede kapsamıyor ** 9) geçersin

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • New Scientist

    New Scientis

    27 Kasım 2006