Переход активности происходит слишком быстро для анимации
редактировать
Проблему можно увидеть здесь:
У меня есть экран входа в систему и экран регистрации.
Когда пользователь нажимает кнопку регистрации - я бы хотел перейти от экрана входа в систему к экрану регистрации. У меня это работает хорошо.
Когда пользователь нажимает кнопку "Назад" на экране регистрации, я бы хотел вернуться к экрану входа в систему.
Кажется, это работает, но действие экрана входа загружается в старое действие до завершения анимации.
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"
,