动画无效

时间:2013-01-29 06:13:43

标签: android animation

Intent intent = null;
intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);          
overridePendingTransition(R.anim.no_animation, R.anim.slide_down_out);  
ClassSelector.this.finish();            
startActivity(intent);

我需要从当前页面转换到另一个页面A.我添加了代码'intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);' 因为这个代码是应用的,所以应用于A的动画也不起作用。

3 个答案:

答案 0 :(得分:3)

两面旗帜

Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK

有相反的意图。一个将旧活动置于最前面,另一个创建新任务 可能有无法预测的结果。

Intent.FLAG_ACTIVITY_SINGLE_TOP

可以带来你需要的动画。

答案 1 :(得分:1)

您可以在致电finish()之后立即致电活动中的startActivity()(并删除您的旗帜),然后在新活动中,使用其onBackPressed()方法,叫这段代码:

@Override public void onBackPressed() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
}

答案 2 :(得分:0)

您只需要在startActivity之后调用overridePendingTransition。

例如:

    Intent intent = null;
    intent = new Intent(this, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); 
    ClassSelector.this.finish();            
    startActivity(intent);          
    overridePendingTransition(R.anim.no_animation, R.anim.slide_down_out);