Не обновляются координаты

Рейтинг: 0Ответов: 0Опубликовано: 04.09.2014

Допустим, передвигаем вниз на 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 реальные координаты после анимации?

Ответы

Ответов пока нет.