Не обновляются координаты
Допустим, передвигаем вниз на 10 пикселей View v. Использую код
v.animate()
.translationY(10)
.setDuration(1000)
.setListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animator animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animator animation) {
lp.setMargins(0, 10, 0, 0);
v.setLayoutParams(lp);
}
@Override
public void onAnimationCancel(Animator animation) {
// TODO Auto-generated method stub
}
});
После анимации v.getTop() возвращает 0, хотя сама View находится на 10 пикселей ниже. Чтобы это исправить, я задал в onAnimationEnd нужный отступ, НО когда анимация заканчивается и вызывается onAnimationEnd, View опускается ещё на 10 пикселей вниз. v.getTop возвращает 10, но по факту отступ составляет уже 20 пикселей.
Как установить в View v реальные координаты после анимации?
Источник: Stack Overflow на русском