完成动画()不起作用

时间:2015-06-15 18:02:42

标签: android animation

我想实现上滑和放大当活动被推入/关闭堆栈时向下动画。这是我的代码:

public class LoginActivity extends ActionBarActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        overridePendingTransition(R.anim.slide_up, R.anim.nothing);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        Button loginBtn = (Button)findViewById(R.id.login);
        loginBtn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            finish();
          }
        });

    }

    @Override
    public void onBackPressed() {
        finish();
    }

    @Override
    public void finish() {
        overridePendingTransition(R.anim.nothing, R.anim.slide_down);
        super.finish();
    }
}

活动是通过“startActivityForResult()”方法启动的。此活动的主题是“Theme.AppCompat.Light.NoActionBar”。

问题在于:
启动活动的动画有效 当按下“后退”按钮时,下拉动画也可以工作 然而,当我直接在活动中调用“finish()”来关闭它时,动画不起作用。

有什么问题?如何解决?

2 个答案:

答案 0 :(得分:0)

您可以覆盖刚刚在finish();

之后调用的待处理转换
finish();
LoginActivity.this.overridePendingTransition(R.anim.nothing,R.anim.nothing);

P.S。答案取自How can I add an animation to the activity finish()

答案 1 :(得分:0)

使用finishAfterTransition()代替finish()为我解决了这个问题。我认为这比覆盖过渡更为干净。