99

I am creating linearLayouts programmatically and would like them to fade in and out when the visibility is set to visible/gone.

I can set

android:animateLayoutChanges="true" 

in the xml-file, but since I am creating the views programmatically, I need to set it programmatically. How can I do that?

deimos1988
  • 5,896
  • 7
  • 41
  • 57

2 Answers2

172

Use this code:

container.setLayoutTransition(new LayoutTransition());

or

LayoutTransition lt = new LayoutTransition();
lt.disableTransitionType(LayoutTransition.DISAPPEARING);
container.setLayoutTransition(lt);
user3709904
  • 1,733
  • 1
  • 9
  • 5
  • 1
    Thank you for your comment, but unfortunately disableTransitionType is only available from API level 16, however I am using API level 15. – deimos1988 Jun 05 '14 at 10:34
  • 2
    It's optional, you can use simply `container.setLayoutTransition(new LayoutTransition())` – user3709904 Jun 05 '14 at 12:45
  • 2
    Okay, but if I wanted to disable the fade-out effect, is there a way for API level 15? – deimos1988 Jun 06 '14 at 07:50
  • 3
    Why disable disappearing transition? – Louis CAD Jan 08 '16 at 15:05
  • 2
    To do it in api level less than 16, just disable Animators for this transition types. This is mentioned in the documentation: http://developer.android.com/intl/ru/reference/android/animation/LayoutTransition.html#setAnimator%28int,%20android.animation.Animator%29 LayoutTransition lt = cardsGroup.getLayoutTransition(); // disabling appearing / disappearing layout transitions lt.setAnimator(LayoutTransition.APPEARING, null); lt.setAnimator(LayoutTransition.DISAPPEARING, null); lt.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, null); – sky Feb 09 '16 at 14:29
22

To disable the fade-out effect try this:

LinearLayout layout = (LinearLayout) findViewById(R.id.test_layout);
layout.setLayoutTransition(null);
Bob
  • 237
  • 2
  • 2