两个Android活动之间的过渡行为异常

时间:2018-07-10 17:48:28

标签: android transitions android-transitions

我在ActivityAActivityB这两个活动之间设置了一些过渡,但是它们的行为不符合预期。 Android API为22(5.0 Lollipop)。使用活动之间的缓慢转换是因为两个活动的Web视图都需要几秒钟的时间才能使其布局稳定。

ActivityANativeActivity,有两种方法可以在从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);
    }
    ...
}

ActivityBActivity

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()时,我注意到发生了两件事:

  1. 缓慢变淡为ActivityA的浅灰色。
  2. 稳定的ActivityB Web视图的突然出现。

我不明白为什么#2是突然出现而不是缓慢消失。

从C ++代码调用ActivityA.startActivityA()时,我看到的只是从ActivityBActivityA的快速淡入淡出。我不明白为什么我会得到快速淡入淡出而不是编程的缓慢淡入淡出。

为什么我不能得到我期望的结果?

0 个答案:

没有答案