通过animation在活动中交换片段

我想通过animation交换活动中的两个片段。假设PageA是用于分割A并且在屏幕的左侧,而PageB是用于片段B,即在屏幕的右侧。 现在我想要的是,当我点击pageA上的一个button时,PageA将会移动到屏幕的右侧,并带有一些过渡animation。

我尝试了下面的代码来replace位置

FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.container, new FragB()); fragmentTransaction.commit(); 

寻找一些线索。

提前致谢。

老questiion,你可能已经知道了,但为了将来的参考:

以下是通过代码replace片段时用于设置自定义animation的内容:

 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.fragment_container, newFragment, "fragment"); // Start the animated transition. ft.commit(); 

以下是slide_in_leftanimation的一个示例:

 <?xml version="1.0" encoding="utf-8"?> <set> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="-100%" android:toXDelta="0" android:interpolator="@android:anim/decelerate_interpolator" android:duration="500"/> </set> 

请注意,如果您正在使用兼容性库,则为animation。 相反,如果您使用的是带有对FragmentManager的本机支持的SDK,那么您的animation将如下所示:

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

这是因为兼容性库不支持新的objectAnimatortypes,只能实现旧的animation框架。