我有 2 个活动,我想在两个活动之间创建一个动画过渡,以便两个活动的视图向上滑动,就好像第二个活动正在向上推动第一个活动一样。 在我的第一个活动中,我使用:
Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class);
FirstActivity.this.startActivity(iSecondActivity);
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);
我的幻灯片.xml看起来像:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:interpolator="@android:anim/decelerate_interpolator"
android:fromYDelta="0"
android:toYDelta="-100%p"
android:duration="2000"
/>
</set>
我的幻灯片2.xml看起来像:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:interpolator="@android:anim/decelerate_interpolator"
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="2000"
/>
</set>
但是,问题是,当调用"startActivity"时,第二个活动的视图已经呈现,而过渡刚刚开始滑动。我想看到第一个活动的视图向上滑动...但相反,我看到第二个活动的视图(在第一个活动的视图上呈现)向上滑动。
第二个问题是我看到替换视图是第一个活动的视图。 我希望替换视图是向上推动的第二个活动的视图。
这很难解释,所以如果我能更详细地解释任何内容,请告诉我。 对于任何困惑,我们深表歉意,并感谢您阅读本文。
附言我正在使用文本视图...我想渲染得太快了?我也在使用摩托罗拉Razr,这并不重要。
没关系,这是一个愚蠢的错误 - 我不明白文档所说的"进入动画"与"退出动画"是什么意思。 我需要通过更改以下内容来交换 XMLS:
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);
到
FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide);
只需将这些添加到幻灯片中即可2.xml:
android:startOffset="2000"
这样,第二个活动的动画将仅在第一个活动的动画完成后立即开始。