Tengo un LinearLayout que utilizo como contenedor para algunos botones y textview que me gustaría animar a la altura de para dar una impresión de que el diseño se desliza cuando el usuario presiona un " botón "mostrar".Animación de altura del contenedor LinearLayout con ValueAnimator
He configurado LinearLayout en layout_height = "0dp" y visibility = "ido" en mi xml. Luego deseo configurarlo para que sea visible y cualquier altura que sea necesaria para envolver el contenido. En este momento estoy teniendo problemas para animarlo, sin importar la altura del contenido del wrapper.
Aquí es mi método para animación:
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();
}
Tal vez el problema es cómo me he fijado la altura de la LinearLayout? ¿O estoy malinterpretando la función del ValueAnimator? He revisado las publicaciones de blog de Chet Haase, pero no contienen ningún ejemplo de animación de altura específico. Tampoco he podido encontrar y buenos ejemplos de cómo trabajar con animaciones de alto usando API de 3.0+. Me gustaría algo de ayuda en esto, gracias!
¿Por qué no usar animación de diseño? –
Francamente, no tengo idea de cómo usarlo y pensé que dado que solo estoy apuntando a las versiones más nuevas de la API, sería más simple usar las clases más nuevas ... Seguiré buscando cómo hacerlo con LayoutAnimation, si tiene una idea sobre cómo hacerlo, siéntase libre de publicarlo como una mejor solución :) – span
¿Hay alguna razón para invalidar? – portfoliobuilder