Bunu doğru bir şekilde içe geçmiş bir yığın bırakarak, temiz-up Parça geri yığını için mi? | Netgez.com
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

  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • bombjack2991

    bombjack2991

    29 HAZÄ°RAN 2008
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011