滑出动画不能按后退按钮?

Tar*_*rma 13 animation android android-animation android-activity

我在进入或退出活动时使用动画,进入活动动画工作正常,但退出动画效果不佳.当我按下后退按钮时,我开始退出动画.发生的事情是它首先开始输入当前活动的动画然后显示最后一个活动我想要一个简单的退出动画按下后退按钮.

Slide_out.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="0%p"
    android:toXDelta="-100%p" >

</translate>
Run Code Online (Sandbox Code Playgroud)

Slide_in.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="100%p"
    android:toXDelta="0%p" >

</translate>
Run Code Online (Sandbox Code Playgroud)

按下操作栏后退按钮

public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()) {
    case R.id.home:

        finish();
        overridePendingTransition(R.anim.slide_out, R.anim.slide_in);
        return true;


    default:
        break;
    }

    return super.onOptionsItemSelected(item);

}
Run Code Online (Sandbox Code Playgroud)

Muk*_*ana 23

首先在anim文件夹中再创建一个动画,即nothing.xml

nothing.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="0%"
    android:toXDelta="0%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

这是你的slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="-100%"
    android:toXDelta="0%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

slide_out.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="0%"
    android:toXDelta="100%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

现在像这样调用你的NewActivity

startActivity(new Intent(CurrentActivity.this, NewActivity.class));
overridePendingTransition(R.anim.slide_in, R.anim.nothing);
Run Code Online (Sandbox Code Playgroud)

然后在你的后退按钮上单击执行此操作

finish();
overridePendingTransition(R.anim.nothing, R.anim.slide_out);
Run Code Online (Sandbox Code Playgroud)


Tar*_*rma 7

我使用了slide_in.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="100%"
    android:toXDelta="0%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

slide_out.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="0%"
    android:toXDelta="-100%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

slide_enter.xml

  <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="-100%"
    android:toXDelta="0%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

slide_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromXDelta="0%"
    android:toXDelta="100%" >

</translate>
Run Code Online (Sandbox Code Playgroud)

        Intent i=new Intent(Authentication.this,Login.class);
        startActivity(i);
        overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
Run Code Online (Sandbox Code Playgroud)

以前

         finish();
         overridePendingTransition(R.anim.slide_enter, R.anim.slide_exit);
Run Code Online (Sandbox Code Playgroud)

  • 复制回答你自己的问题的人的答案是荒谬的.我甚至不知道你是如何获得这么多赞成票的. (9认同)

Rem*_*yde 5

添加动画onBackPressed,点击后退按钮时会显示动画。

@Override
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_in, R.anim.slide_out);   
}
Run Code Online (Sandbox Code Playgroud)