2017-09-22 102 views
1

當從一個片段HelloAfragment過渡到HelloBfragment使用下面的代碼,如何從HelloAfragment過渡到HelloBfragmentAndroid的碎片化問題

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

變化的android:持續時間=「700」in slide_in_left.xml –

+0

查看https://stackoverflow.com/a/26984314/3496570 – Nepster

+0

@mohitSuthar我在slide_in_left.xml中添加了持續時間,但dint工作 – Vijay

回答

0

嘗試下面的代碼

  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

將此代碼用於由android studio提供的動畫。 'fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,android.R.anim.slide_out_right) ;' –

0

你只需要時添加延遲在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"/> 

和本準則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

我嘗試了所有,並最終結束了使用一個活動,而不是片段 – Vijay

0

我無法實現之間的兩個片段的過渡,所以我最終改變目標片段活動,用下面的代碼的活動

 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); 
    } 
}