我们在Back键按下时移动活动时,overridePendingTransition()方法不起作用?

时间:2013-10-02 14:07:49

标签: android animation

我有3个活动A,B,C。我可以在从A-> B-> C移动活动时显示动画。

当我按下背部按钮时,我想添加动画。

我在onCreate()方法上使用overridePendingTransition(R.anim.fadein,R.anim.fadeout)。

当我按下后退按钮时,有人可以解释它的工作原理吗?

2 个答案:

答案 0 :(得分:1)

覆盖您的活动onBackPressed

public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

答案 1 :(得分:0)

你必须覆盖后退按钮:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    {
        finish();
        overridePendingTransition(R.anim.anim_out, R.anim.anim_in);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

例如: 在res中创建“anim”文件夹并添加: anim_out:

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:duration="500" />
</set>

anim_in:

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="500" />
</set>