2012-01-26 14 views
9
  1. Etkinlik 1 görünür. Bir düğmeye basın, Etkinlik 2 açılır.
  2. Aktivite 2 kendi (ve geri yığın) için fragmanı A ekler ve bir diğer fragmanın, B
  3. Geri düğmesine basın fragmanı geçişleri olan bir düğmeye basıldığında
  4. ince gösterir. Hiçbir şey olmuyor. Ha? Arka baskı görünürde emilir ve harekete geçmez, ekran aynı kalır.
  5. İkinci kez geri tuşuna basın, beklendiği gibi Etkinlik 1'e döner.

Parça bölümüm neden 4. adımda gösterilmiyor? Parçayı arka yığına ekledim, o zaman neden (Geri düğmesi varoluşunun farkında olduğunda) parçayı göstermiyor? İşte Neden Fragment.addToBackStack(), Geri düğmesine hiçbir şey yapmamak için neden?

Ben
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
    setContentView(R.layout.act_profile_edit); 
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
    transaction.addToBackStack(null); 
    transaction.add(android.R.id.content, new MyFragment()); 
    transaction.commit(); 
} 

Fragment A.

açmak için Etkinlik 2'de kod kullanıyorum oluyor Ve burada

FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
    transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
    transaction.add(android.R.id.content, new MyOtherFragment()); 
    transaction.commit(); 

cevap

10

Eğer transaction.replace(...) yerine transaction.add(...) denediniz Fragment B açmak için kod? Bu işe yaramalı. Ben sadece başka üzerinden bir parçası eklerken, bu Parçası A. fro geri gitmek isteyen olarak işlem görmez, çünkü tahmin ediyorum

DÜZENLEME soru için gerçek cevabı yorumlarda altındadır : addToBackStack(), değiştirilmekte olan yerine olan parçada kullanılmalıdır.

+0

Bu yardımcı olmuyor. Eğer başlangıçta (ekleme yerine) kullanırsam, değiştirilecek bir parça yoktur, dolayısıyla aynı davranmasını beklerim. Eğer B parçasını göstermek için değiştirmeyi kullanacak olsaydım, insanların geri dönmesini istediğim kullanıcının geri dönmek için geri dönmesi gerekirdi. –

+0

tamam, bu iki fragman farklı karelere ait mi? –

+0

ve B parçası yerleştirme kodunuz nedir? –

İlgili konular