Страницы

Поиск по вопросам

воскресенье, 7 апреля 2019 г.

В случае удаления view элемента методом setVisibility(View.GONE) как запустить сначала анимацию

Имеется метод onTouch, в котором указано, что при касании на view1 под ним появляется view2, а при следующем касании по view1 view2 скрывается.
В коде удаление view2 прописано так: view2.setVisibility(View.GONE)
Однако есть еще и анимация ухода view2:
view2.setAnimation(AnimationUtils.makeOutAnimation(this,true));
которая прописана строчкой выше (перед удалением).
По факту все срабатывает так:
view2 удаляется анимация показывает, как view2 уезжает вправо.
Т.е., когда view2 уже нет, анимация все еще показывает, как view2 уезжает вправо.
Дело в том, что при удалении view2, его место занимает другой view, поэтому все выглядит не очень красиво.
Подскажите, пожалуйста, как сделать, чтобы было так:
анимация показывает, как view2 уезжает вправо view2 удаляется


Ответ

Отследите окончание анимации, где измените видимость.
Animation anim = AnimationUtils.makeOutAnimation(this, true);
anim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) {
}
@Override public void onAnimationEnd(Animation animation) { view.setVisibility(View.GONE); }
@Override public void onAnimationRepeat(Animation animation) {
} });

Комментариев нет:

Отправить комментарий