我正在尝试使用FragmentTransaction.setCustomAnimations实现以下效果。
- 片段A正在显示
- 用片段B替换片段A。片段A在替换期间应保持可见。片段B应该从右侧滑入。片段B应滑入片段A的顶部。
在动画设置中获取幻灯片没有问题。我的问题是,我无法弄清楚如何使片段A停留在原处并在动画幻灯片运行时位于片段B之下。不管我做什么,片段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,因为我实际上不希望Fragment 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" />
没有.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" />