2014-08-28 23 views
16

Etkinliğimde, tek bir tuşla, bu örnekte olduğu gibi özel bir animasyon kullanarak yeni bir parçayla yeni bir parçayla değiştiriyorum.customDevisionManager'da popBackStack çağrılırken dikkat edilmesi

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle presses on the action bar items 
    switch (item.getItemId()) { 
     case R.id.action_anomalie: 
      Fragment contentFragment = getFragmentManager().findFragmentById(R.id.content); 

      if(contentFragment instanceof AnomalieListFragment) 
      { 
       getFragmentManager().popBackStack(); 
       return true; 
      } 
      else 
      { 
       FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); 
       anomalieFragment = new AnomalieListFragment(); 
       ft.replace(R.id.content, anomalieFragment); 
       ft.addToBackStack(null); 
       ft.commit(); 
      } 

    ... 

Ancak popping back the stack herhangi animasyon göstermez. setCustomAnimations yöntemiyle FragmentTransaction'da yaptığımız gibi özel bir animasyon belirtmenin bir yolu var mı?

cevap

53

belgelerin diğer okumadan sonra, ben setCustomAnimation ait this imzasını kullanarak geri düğmesine basarak veya getFragmentManager().popBackStack();

arayarak bu

... 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out); 
anomalieFragment = new AnomalieListFragment(); 
ft.replace(R.id.content, anomalieFragment); 
ft.addToBackStack(null); 
ft.commit(); 
... 
+1

Kaydedilen gibi kodumu modifiye zaman animasyon oynanacak izin bulundu bana çok zaman. Teşekkürler !! – Yahel

+7

Teşekkürler bu harika çalışıyor. Bu kodun çalışmasını sağlayan şey, 4 parametre aşırı yüküyle adlandırılan "setCustomAnimations" yöntemidir. 2 param biri 'popBackStack' üzerinde animasyon yapmaz. – Francois

+1

Not, .setCustomAnimations öğesinin daha önce olması gerekir. – Codeversed

İlgili konular