У меня есть LinearLayout, который я использую в качестве контейнера для некоторых кнопок и текстового представления, которые я хотел бы оживить по высоте, чтобы создать впечатление, что макет сползает, когда пользователь нажимает кнопку "показать".
Я установил LinearLayout в layout_height = "0dp" и visibility = "gone" в моем 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? Я просмотрел сообщение в блоге Чет Хаазе, но они не содержат конкретных примеров анимации высоты. Я также не смог найти и хорошие примеры того, как работать с анимацией высоты, используя API от 3.0+. Хотелось бы помочь в этом, спасибо!