Анимация высоты контейнера 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+. Хотелось бы помочь с этим, спасибо!