2017-09-22 2 views
1

Lors de la transition d'un fragment HelloAfragment à HelloBfragment en utilisant ci-dessous le code, comment ajouter un délai lors de la transition de HelloAfragment à HelloBfragmentAndroid Fragments enjeu La transition

TAG = HelloFrament.class.getSimpleName(); 
    fragmentManager.beginTransaction() 
      .setCustomAnimations(R.anim.slide_in_left,R.anim.slide_out_right) 
      .replace(HelloAfragment.getId(), HelloBfragment, TAG) 
      .addToBackStack(TAG) 
      .commit(); 
+0

changement android: durée = "700" dans slide_in_left.xml –

+0

Voir https://stackoverflow.com/a/26984314/3496570 – Nepster

+0

@mohitSuthar J'ai ajouté la durée sur le slide_in_left.xml mais dint travail – Vijay

Répondre

0

Essayez le code suivant

  FragmentManager fragmentManager = getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
      fragmentManager.addOnBackStackChangedListener(this); 
      fragmentTransaction.replace(R.id.frame, firstFragment, "h"); 
      fragmentTransaction.addToBackStack("h"); 
      fragmentTransaction.commit(); 
+0

Utilisez ce code pour l'animation donnée par android studio .. 'fragmentTransaction.setCustomAnimations (android.R.anim.slide_in_left, android.R.anim.slide_out_right) ; ' –

0

Il vous suffit un petit changement, utilisez le code ci-dessous dans slide_in_left

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:fromXDelta="1000" android:toXDelta="0" 
     android:duration="700"/> 

et ce code pour slide_in_right

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:fromXDelta="0" android:toXDelta="-1000" 
     android:duration="700"/> 
+0

J'ai essayé tous et finalement fini par utiliser une activité au lieu de fragment – Vijay

0

Je ne pouvais pas réaliser la transition entre deux de fragment, donc j'ai fini par changer le fragment de destination à l'activité et a utilisé le code ci-dessous pour l'activité

 View imageView = findViewById(R.id.imageView); 
    View textView = findViewById(R.id.textView); 
    View button = findViewById(R.id.button); 

    Intent intent = new Intent(this, EndActivity.class); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     textView.setTransitionName(getString(R.string.activity_text_trans)); 
     button.setTransitionName(getString(R.string.activity_mixed_trans)); 

     Pair<View, String> pair1 = Pair.create(imageView, imageView.getTransitionName()); 
     Pair<View, String> pair2 = Pair.create(textView, textView.getTransitionName()); 
     Pair<View, String> pair3 = Pair.create(button, button.getTransitionName()); 
     ActivityOptionsCompat options = ActivityOptionsCompat. 
       makeSceneTransitionAnimation(this, pair1, pair2, pair3); 
     startActivity(intent, options.toBundle()); 
    } 
    else { 
     startActivity(intent); 
    } 
}