Configuración de android: animateLayoutChanges mediante programación


84

Estoy creando linearLayouts programáticamente y me gustaría que aparezcan y desaparezcan cuando la visibilidad esté configurada como visible / desaparecida.

Puedo configurar

android:animateLayoutChanges="true" 

en el archivo xml, pero como estoy creando las vistas programáticamente, necesito configurarlo programáticamente. ¿Cómo puedo hacer eso?

Respuestas:


151

Utilice este código:

container.setLayoutTransition(new LayoutTransition());

o

LayoutTransition lt = new LayoutTransition();
lt.disableTransitionType(LayoutTransition.DISAPPEARING);
container.setLayoutTransition(lt);

1
Gracias por su comentario, pero desafortunadamente disableTransitionType solo está disponible desde el nivel de API 16, sin embargo, estoy usando el nivel de API 15.
deimos1988

2
Es opcional, puede usarlo simplementecontainer.setLayoutTransition(new LayoutTransition())
user3709904

2
De acuerdo, pero si quisiera deshabilitar el efecto de desvanecimiento, ¿hay alguna forma para el nivel de API 15?
deimos1988

3
¿Por qué desactivar la transición de desaparición?
Louis CAD

2
Para hacerlo en un nivel de API inferior a 16, simplemente desactive Animadores para estos tipos de transición. Esto se menciona en la documentación: developer.android.com/intl/ru/reference/android/animation/… LayoutTransition lt = cardsGroup.getLayoutTransition (); // deshabilitar las transiciones de diseño que aparecen / desaparecen lt.setAnimator (LayoutTransition.APPEARING, null); lt.setAnimator (LayoutTransition.DISAPPEARING, nulo); lt.setAnimator (LayoutTransition.CHANGE_DISAPPEARING, nulo);
cielo

18

Para deshabilitar el efecto de desvanecimiento intente esto:

LinearLayout layout = (LinearLayout) findViewById(R.id.test_layout);
layout.setLayoutTransition(null);

2
Esto me está dando NullPointerException.
Srujan Barai

7
@SrujanBarai Entonces no hay vista con la identificación R.id. test_layouten su diseño.
Paul Woitaschek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.