0

Je dois créer une activité avec environ 6 fragments, une exigence importante est que les fragmets puissent animer dans une direction et animer en arrière la même direction qu'ils sont entrés, j'ai été capable de trouver une solution qui animera l'animation d'entrée, mais l'animation de sortie ne fonctionne jamais, toute aide ira un long chemin merci!Des fragments Android montrent une animation de sortie

Activité

public class HomeFragmentActivity extends Activity { 

Fragment fr; 

Integer pagePosition; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home_fragment); 

    pagePosition = 0; 

} 


public void categoryNavClick(View view) { 


     fr = new FragmentOne(); 

     FragmentManager fm = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
     fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.enter_right_anim); 
     fragmentTransaction.replace(R.id.frHomeFragment, fr); 
     fragmentTransaction.commit(); 

     pagePosition = 0; 



} 

public void homeNavClick(View view) { 

     fr = new FragmentTwo(); 

     FragmentManager fm = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
     fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.exit_right_anim); 
     fragmentTransaction.replace(R.id.frHomeFragment, fr); 
     fragmentTransaction.commit(); 

     pagePosition = 1; 

} 

}

enter_right_anim.xml

<?xml version="1.0" encoding="utf-8"?> 
<set> 
<objectAnimator 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:propertyName="x" 
    android:valueFrom="0" 
    android:valueTo="-2000" 
    android:valueType="floatType" /> 
</set> 

exit_right_anim.xml

<?xml version="1.0" encoding="utf-8"?> 
<set> 
<objectAnimator 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:propertyName="x" 
    android:valueFrom="2000" 
    android:valueTo="0" 
    android:valueType="floatType" /> 
</set> 
+0

Avez-vous envisagé En utilisant un pager de vue avec une disposition de tabulation, les deux font partie de la bibliothèque compat de l'application et font beaucoup de travail grunt pour vous y compris l'animation des fragments et des fragments de balayage et peuvent également être rétroportés vers les versions android plus anciennes. –

+0

Malheureusement, les autres vues ne peuvent pas être affichées lors du déplacement d'une vue à la suivante, ce que le client veut est une navigation similaire à ce que instagram fait sur leur application –

Répondre

0

vous avez la même animation dans l'entrée et la sortie en soi Essayez de mettre un décalage aussi dans l'entrée du fragment, puis il apparaîtra seulement après le premier laisser, comme l'exigence que vous avez dit à propos de "les autres vues ne peuvent pas être affichées lors du déplacement d'une vue à l'autre, ce que le client veut »


mise à jour

la vue sortie est animée sur la toile de la vue entrée, de sorte que vous créer l'animation comme vous, mais l'animation d'entrée essayer de mettre

android:startOffset="1000" 

mille décalage parce que son 1 seconde animation à l'autre fragment disparaître

autre chose était cette ligne

fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.enter_right_anim); 

il a la même animation pour entrer et sortir

+0

C'est la première fois que je dois créer ce type de mise en page. suis un peu confus par la réponse, seriez-vous capable de montrer un exemple de code de base? –