2014-06-05 6 views
55

Programowo programuję liniowo Loutouts i chciałbym, aby były one rozjaśniane, gdy widoczność jest ustawiona jako widoczna/znika.Ustawienia android: animateLayoutChanges programowo

mogę ustawić

android:animateLayoutChanges="true" 

w pliku xml, ale ponieważ jestem tworzenia widoków programowo, muszę ustawić go programowo. Jak mogę to zrobić?

Odpowiedz

91

użyć tego kodu:

container.setLayoutTransition(new LayoutTransition()); 

lub

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

Dziękuję za komentarz, ale niestety disableTransitionType jest tylko dostępne z poziomu interfejsu API 16, jednak używam poziomu interfejsu API 15. – deimos1988

+2

Jest to opcjonalne, można użyć po prostu 'zawierać er.setLayoutTransition (new LayoutTransition()) ' – user3709904

+2

OK, ale jeśli chciałbym wyłączyć efekt zanikania, czy istnieje sposób na poziom API 15? – deimos1988

10

Aby wyłączyć efekt zejścia spróbuj tego:

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

To daje mi wyjątek NullPointerException. –

+1

@SrujanBarai Następnie nie ma widoku o identyfikatorze 'R.id. test_layout' w twoim układzie. –