- 显示Fragment A
- 用Fragment B替换Fragment A。在替换期间,Fragment A应该保持可见。Fragment B应从右侧滑入。在Fragment B滑入时,它应该覆盖在Fragment A上方。
如何实现这一点?
以下是FragmentTransaction的代码:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.nothing, R.anim.nothing,
R.anim.slide_out_right);
ft.replace(R.id.fragment_content, fragment, name);
ft.addToBackStack(name);
ft.commit();
你可以看到,我为"out"动画定义了一个名为R.anim.nothing的动画,因为我实际上不希望片段A在事务期间做任何其他操作,只是保持原样。
这里是动画资源:
slide_in_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0"
android:zAdjustment="top" />
nothing.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:toAlpha="1.0"
android:zAdjustment="bottom" />