对于我的应用,我试图揭示前面显示的实际ContentActivity
- IntroActivity
。我很乐意将ContentActivity的感觉建立在IntroActivity背后,然后IntroActivity消失在底层,而ContentActivity已经落后于它。
我试过overridePendingTransition()
,这对我不起作用。现在从ContentActivity
开始调用IntroActivity
,看起来像这样:
private void startContentActivity() {
ContentActivity.launch(this);
finish();
overridePendingTransition(R.anim.do_not_move, R.anim.disappear_to_bottom);
}
当我将动画更改为
时overridePendingTransition(R.anim.appear_from_left, R.anim.disappear_to_right);
它按预期工作(ContentActivity从右侧进入,IntroActivity从右侧进入)。但是,第一个片段根本不会产生过渡动画。
为了更好地理解,这里是动画资源:
R.anim.do_not_move
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
R.anim.disappear_to_bottom
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="@integer/main_animations_timing" />
</set>
R.anim.disappear_to_right
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%p"
android:toXDelta="100%p"
android:duration="@integer/main_animations_timing" />
</set>
R.anim.appear_from_left
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-100%p"
android:toXDelta="0%p"
android:duration="@integer/main_animations_timing" />
</set>
有人有想法吗?我应该之前启动ContentActivity还是有更好的方法来实现这一目标?