Переход активности происходит слишком быстро для анимации

редактировать

Проблему можно увидеть здесь:

введите описание изображения здесь

У меня есть экран входа в систему и экран регистрации.

Когда пользователь нажимает кнопку регистрации - я бы хотел перейти от экрана входа в систему к экрану регистрации. У меня это работает хорошо.

Когда пользователь нажимает кнопку "Назад" на экране регистрации, я бы хотел вернуться к экрану входа в систему.

Кажется, это работает, но действие экрана входа загружается в старое действие до завершения анимации.

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);
}

RegisterActivity.java

@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);
}

push_left_in.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>

push_right_in.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>

Заметка

Я попробовал оба решения ниже, и ни один не работает в моем случае.

overridePendingTransition показывает второе действие слишком быстро

1 ответ

Решение

push_right_in.xml а также push_right_out.xml кажется, перепутал.

push_right_in.xml должен начинаться с экрана: android:fromXDelta="-100%p" и заканчиваем на экране: android:toXDelta="0"

push_right_out.xml должен начинаться на экране: android:fromXDelta="0" и заканчивая с экрана: android:toXDelta="100%p",

Другие вопросы по тегам