Android 活动转换对于动画来说发生得太快

Android 活动转换对于动画来说发生得太快,android,android-animation,android-xml,overridependingtransition,Android,Android Animation,Android Xml,Overridependingtransition,编辑 问题可以在这里看到: 我有一个登录屏幕和一个注册屏幕 当用户单击注册按钮时,我想从登录屏幕滑到注册屏幕。我可以用了 当用户按下注册屏幕上的后退按钮时,我想滑回登录屏幕 这似乎正在工作,但在动画完成之前,登录屏幕活动正在加载到旧活动中 LoginActivity.java public void createAccount(View view) { Log.d(TAG, "Create Account clicked"); Intent intent = new Inten

编辑

问题可以在这里看到:

我有一个登录屏幕和一个注册屏幕

当用户单击注册按钮时,我想从登录屏幕滑到注册屏幕。我可以用了

当用户按下注册屏幕上的后退按钮时,我想滑回登录屏幕

这似乎正在工作,但在动画完成之前,登录屏幕活动正在加载到旧活动中

LoginActivity.java

public void createAccount(View view) {
    Log.d(TAG, "Create Account clicked");
    Intent intent = new Intent(getApplicationContext(), SignupActivity.class);
    startActivityForResult(intent, REQUEST_SIGNUP);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
@Override
public void onBackPressed() {
    super.onBackPressed();
    Log.d(TAG, "Back clicked - return to login");
    finish();
    overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
}
RegisterActivity.java

public void createAccount(View view) {
    Log.d(TAG, "Create Account clicked");
    Intent intent = new Intent(getApplicationContext(), SignupActivity.class);
    startActivityForResult(intent, REQUEST_SIGNUP);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
@Override
public void onBackPressed() {
    super.onBackPressed();
    Log.d(TAG, "Back clicked - return to login");
    finish();
    overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
}
在.xml中按左键

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

push_left_out.xml

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

在.xml中按右键

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

push_right_out.xml

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

注意

我已经尝试了以下两种解决方案,但在我的案例中都不起作用


push\u right\u in.xml
push\u right\u out.xml似乎混淆了


push_right_in.xml
应该从屏幕开始:
android:fromXDelta=“-100%p”
并在屏幕上结束:
android:toXDelta=“0”


push\u right\u out.xml
应该在屏幕上开始:
android:fromXDelta=“0”
在屏幕下结束:
android:toXDelta=“100%p”

可以解释推理吗?当用户返回时,动画应该是什么?因此当用户在第一个屏幕上单击“创建帐户”时,寄存器活动应从右向左拖动。当用户单击back(返回)时,登录屏幕应从左向右拉,与第一个动画相反。