Java onBackPressed()动画问题

Java onBackPressed()动画问题,java,android,animation,onbackpressed,Java,Android,Animation,Onbackpressed,我试图重写onBackPressed()方法来设置我自己的动画,但实际情况是它从我的活动滑到同一个活动,然后显示新活动 这是我的密码: @Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left); } 以下是动画: 向右滑出: <?xml version="1.0"

我试图重写onBackPressed()方法来设置我自己的动画,但实际情况是它从我的活动滑到同一个活动,然后显示新活动

这是我的密码:

@Override
public void onBackPressed()
{
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
}
以下是动画:

向右滑出:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate android:duration="400" android:fromXDelta="0%" android:toXDelta="100%" />
<alpha android:duration="400" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>

滑入左侧:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator= "false" >
<translate android:duration = "400" android:fromXDelta = "-100%" android:toXDelta = "0%" />
<alpha android:duration = "400" android:fromAlpha = "0.0" android:toAlpha = "1.0" />
</set>

谢谢你们的帮助。

超级.onBackPressed()删除此行,然后开始工作

这是从左到中的幻灯片

   <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="-300%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />
  </set>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="300%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />
  </set>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="0%"
    android:fromYDelta="0%"
    android:toXDelta="-300%"
    android:toYDelta="0%" />
  </set>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="0%"
    android:fromYDelta="0%"
    android:toXDelta="300%"
    android:toYDelta="0%" />
  </set>

并添加您在press back中使用的功能。

以下是您可以尝试解决的问题:

@Override
public void onBackPressed()
{
    finish();
    overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);


}

编辑:以下是来自

如果你要调查Android平台上的基础应用程序, 你可能会注意到一个相当常见的模式:给 截取BACK键并执行不同的操作。要做到这一点, 魔术需要看起来像这样:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
如何在活动中截取BACK键也是常见的问题之一 开发人员提出的问题,从2.0开始,我们有了一个新的小API 要使此操作更简单、更容易发现并正确执行,请执行以下操作:

@Override
public void onBackPressed() {
// do something on back.
return;
}
如果这就是你所关心的,而你不担心 支持2.0之前的平台版本,则可以停止 在这里否则,请继续阅读

所以你的代码应该是这样的

@Override
public void onBackPressed()
{

   overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
   finish();
}


试试这一次,如果这对你很好,那么你可能会有一些其他部分的问题

滑出\u down.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:fromYDelta="0%p"
    android:toYDelta="100%p" />
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="100%p"
    android:toYDelta="0%p" />

我试图删除
super.onBackPressed()但是后退按钮不再工作了:/I我所做的是:
Intent Intent=new Intent(main menu.this,SplashScreen.class);星触觉(意向);覆盖转换(R.anim.slide\u out\u right,R.anim.slide\u in\u left)但我仍然有相同的问题选中此项;我刚试过,还是一样的问题。我真的不明白为什么:/@primaëlquemerais这是部分好的解决方案,但是
onKeyDown()
listener仍然在工作,您可能还需要更改它。检查我的答案和评论中的链接,也尝试过了,同样的问题发生了,就像两个动画应用于同一个活动,然后他改变了活动一样/谢谢,我终于成功了,我刚刚更改了我正在使用的动画,这很奇怪,因为它不应该这样工作,但无论如何感谢你的帮助:)它更改了动画,但仍然是同一个问题,我不认为问题来自动画,但我试过我的其他一些动画,奇怪的是它的作品。
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%p"
    android:toYDelta="100%p" />
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="100%p"
    android:toYDelta="0%p" />
@Override
    public void onBackPressed() {
        finish();
        overridePendingTransition(R.anim.slide_up_dialog, R.anim.slide_out_down);
    }