我在ActivityA
和ActivityB
这两个活动之间设置了一些过渡,但是它们的行为不符合预期。 Android API为22(5.0 Lollipop)。使用活动之间的缓慢转换是因为两个活动的Web视图都需要几秒钟的时间才能使其布局稳定。
ActivityA
是NativeActivity
,有两种方法可以在从C ++代码调用的活动之间进行切换。
class ActivityA extends NativeActivity
{
...
protected void startActivityA()
{
startActivity(getApplicationContext(), ActivityA.class);
overridePendingTransitions(R.anim.slow_fade_in, R.anim.slow_fade_out);
}
protected void startActivityB()
{
startActivity(getApplicationContext(), ActivityB.class);
overridePendingTransitions(R.anim.slow_fade_in, R.anim.slow_fade_out);
}
...
}
ActivityB
是Activity
。
res/anim/show_fade_in.xml
转换为:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:factor="1.0"
android:fillAfter="true"
android:fillBefore="true" android:fillEnabled="true"
android:duration="5000" />
</set>
res/anim/slow_fade_out.xml
转换为:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:factor="1.0"
android:fillAfter="true"
android:fillBefore="true" android:fillEnabled="true"
android:duration="5000" />
</set>
从C ++代码调用ActivityA.startActivityB()
时,我注意到发生了两件事:
ActivityA
的浅灰色。ActivityB
Web视图的突然出现。我不明白为什么#2是突然出现而不是缓慢消失。
从C ++代码调用ActivityA.startActivityA()
时,我看到的只是从ActivityB
到ActivityA
的快速淡入淡出。我不明白为什么我会得到快速淡入淡出而不是编程的缓慢淡入淡出。
为什么我不能得到我期望的结果?