О анимации super.onBackPressed()
Android про super.onBackPressed() покажите анимацию
В программе входа в Android нажмите правую нижнюю кнопку регистрации, чтобы показать анимацию открытия страницы регистрации, а затем в левом нижнем углу появится анимация, чтобы вернуться к кнопке страницы входа. Хорошо, все в порядке.
Я бы нажал левую кнопку входа внизу страницы, и там была бы анимация, чтобы закрыть страницу регистрации, а анимация, отображаемая справа внизу, показала бы кнопку страницы входа. Но есть проблемы с реализация. После закрытия анимации, анимация кнопки, показывающая страницу входа, не может быть отображена. Я думаю, потому что
RegisterActivity. Super. OnBackPressed ()
Я не знаю что делать. Спасибо
Исходный код:
/**
* Close the page animation
*/
public void animateRevealClose() {
int centerX = (mCardViewRegister.getWidth()) / 2;
int centerY = (mToSignUpCardView.getTop() + mToSignUpCardView.getBottom()) / 2;
int startRadius = mCardViewRegister.getHeight();
int endRadius = mToSignUpCardView.getWidth() / 2;
Animator mAnimator = ViewAnimationUtils.createCircularReveal(
mCardViewRegister,
centerX,
centerY,
startRadius,
endRadius);
mAnimator.setDuration(500);
mAnimator.setInterpolator(new AccelerateInterpolator());
mAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
BottomFastSignUp(); //The bottom button displays the animation.
mCardViewRegister.setVisibility(View.INVISIBLE);
super.onAnimationEnd(animation);
RegisterActivity.super.onBackPressed();
}
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
}
});
mAnimator.start();}
метод onBackPressed()
@Override
public void onBackPressed() {
animateRevealClose();
super.onBackPressed();
}
1 ответ
Вот что я понимаю из нашей дискуссии:
1 /
Вы запускаете анимацию закрытия при нажатии кнопки "Назад", но затем вызываете super.onBackPressed()
немедленно, что завершает деятельность, и любая настройка анимации бесполезна.
Так удали super.onBackPressed();
это первое исправление.
2 /
В конце события закрытия анимации вы вызываете BottomFastSignUp
это еще одна анимация, но снова вызов RegisterActivity.super.onBackPressed();
, Это завершает действие, и анимация снова становится бесполезной.
Поэтому, чтобы это исправить, не завершайте упражнение до того, как все анимации будут завершены.
Есть 2 варианта исправления:
- Слушать
BottomFastSignUp
конец анимации и вызовfinish
там. - Переехать
BottomFastSignUp
вLoginActivity
, Вы можете закончитьRegisterActivity
переопределитьonActivityReenter
вLoginActivity
и сделатьBottomFastSignUp
там вместо