Анимация высоты контейнера LinearLayout с помощью ValueAnimator

У меня есть LinearLayout, который я использую в качестве контейнера для некоторых кнопок и текстовых представлений, для которых я хотел бы анимировать высоту, чтобы создать впечатление скольжения макета, когда пользователь нажимает кнопку «показать». кнопка.

Я установил LinearLayout в layout_height = & quot; 0dp & quot; и видимость = "ушел" в моем XML. Затем я хочу, чтобы он был видимым и какой бы высоты он ни был, чтобы обернуть содержимое. В настоящий момент у меня возникают проблемы, даже если они вообще анимированы, не говоря уже о высоте содержимого переноса.

Вот мой метод анимации:

private void toggle(final LinearLayout v) {
    v.setVisibility(View.VISIBLE);
    ValueAnimator va = ValueAnimator.ofInt(0, 300);
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        public void onAnimationUpdate(ValueAnimator animation) {
            Integer value = (Integer) animation.getAnimatedValue();
            v.getLayoutParams().height = value.intValue();
            v.invalidate();

        }
    });

    va.start();
}

Возможно, проблема в том, как я устанавливаю высоту LinearLayout? Или я неправильно понимаю функцию ValueAnimator? Я посмотрел на сообщения в блоге Chet Haase, но они не содержат конкретных примеров анимации высоты. Я также не смог найти и хороших примеров того, как работать с анимацией высоты с использованием API версии 3.0+. Хотелось бы помочь с этим, спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос