2014-06-05 34 views
55

Sto creando linearLayouts a livello di programmazione e vorrei che si dissolvessero in entrata e in uscita quando la visibilità è impostata su visibile/interrotta.Impostazione android: animateLayoutChanges a livello di programmazione

posso impostare

android:animateLayoutChanges="true" 

nel file XML, ma dal momento che sto creando il punto di vista di programmazione, ho bisogno di impostare a livello di codice. Come lo posso fare?

risposta

91

di questo codice:

container.setLayoutTransition(new LayoutTransition()); 

o

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

Grazie per il tuo commento, ma purtroppo disableTransitionType è solo disponibile dal livello 16 dell'API, tuttavia sto usando il livello API 15. – deimos1988

+2

È opzionale, puoi usare semplicemente 'contenere er.setLayoutTransition (new LayoutTransition()) ' – user3709904

+2

Ok, ma se volessi disabilitare l'effetto fade-out, c'è un modo per il livello API 15? – deimos1988

10

Per disattivare l'effetto dissolvenza provate questo:

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

Mi sta dando NullPointerException. –

+1

@SrujanBarai Quindi non c'è vista con l'ID 'R.id. test_layout' nel tuo layout. –

Problemi correlati