【发布时间】:2018-09-09 07:17:36
【问题描述】:
我用什么:
activity_stay.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
</set>
activity_slide_to_bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0"
android:toYDelta="100%p" />
</set>
activity_slide_from_bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
开始新活动:
startActivity(NewActivity.getIntent(this))
overridePendingTransition(R.anim.activity_slide_from_bottom, R.anim.activity_stay)
NewActivity 完成():
finish()
overridePendingTransition(R.anim.activity_stay, R.anim.activity_slide_to_bottom)
当 NewActivity 启动时,OldActivity 消失 - 我看到空白屏幕上方 NewActivity 滑到顶部。但是我需要的是我的 NewActivity 在启动时滑到 OldActivity 内容的顶部。我怎样才能做到这一点?
UPD:当我因为某些原因完成我的 NewActivity 时,所有动画都能完美执行:NewActivity 滑到底部,OldActivity 内容显示在 NewActivity 内容下方。
【问题讨论】:
-
尝试使用相同的逗留时间
@android:integer/config_longAnimTime -
@JyotiJK 感谢您的回答,我试过了,但没有帮助。
-
这个链接显示了为什么你应该为过渡动画选择正确的循环stackoverflow.com/a/23752530/9287163
-
如果您希望整个应用程序的转换工作,您可以创建一个 rootacivity 并在您需要的活动中继承它。见例子stackoverflow.com/a/20188089/9287163
-
如果你想使用你的方法只尝试覆盖你的完成方法并添加一个条件是完成检查并通过你的 overidependingtranstion() 方法我几乎认为这可能有效但你可以尝试
标签: android android-activity android-animation android-xml android-transitions