我想将活动更改过渡应用于仅进入活动。假设我正在推动A-> B然后我希望A活动保持不变,B来自Bottom to Top。
我应用了以下代码但未正常工作
startActivityForResult(intent, SET_FILTER_REQUEST);
overridePendingTransition(R.anim.translate_in_anim, R.anim.stay_still_anim);
我使用以下xml文件进行动画
stay_still_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="250"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
和
translate_in_anim.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate android:fromYDelta="100"
android:toYDelta="0%"
android:duration="1000"/>
</set>
答案 0 :(得分:3)
所以基本上如果你纠正动画xml文件,它将完美适合你。 首先要注意的是,为两个Xml提供相同的动画持续时间。并将 fromYDelta 值从 100 更正为 100%,如下所示。您可以将其复制并粘贴到您的代码中。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate android:fromYDelta="100%"
android:toYDelta="0%"
android:duration="@android:integer/config_longAnimTime"/>
</set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
答案 1 :(得分:1)
将R.anim.out保持为空:
<set xmlns:android="http://schemas.android.com/apk/res/android">
</set>
然后:
startActivity(new Intent(Main2Activity.this, MainActivity.class));
overridePendingTransition(R.anim.translate_in_anim, R.anim.out);
将按默认动画完成活动。
答案 2 :(得分:0)
我可以使用
解决这个问题 overridePendingTransition(R.anim.abc_slide_in_bottom, android.R.anim.fade_out);
abc_slide_in_bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:fromYDelta="50%p" android:toYDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>