Join us on the livestream at Android Dev Summit on 7-8 November 2018, starting at 10AM PDT!

Auto animate layout updates

Android offers pre-loaded animation that the system runs each time you make a change to the layout. All you need to do is set an attribute in the layout to tell the Android system to animate these layout changes, and system-default animations are carried out for you.

Tip: If you want to supply custom layout animations, create a LayoutTransition object and supply it to the layout with the setLayoutTransition() method.

Here's what a default layout animation looks like when adding items to a list:

Layout animation
 

Create the layout

In your activity's layout XML file, set the android:animateLayoutChanges attribute to true for the layout that you want to enable animations for. For instance:

<LinearLayout android:id="@+id/container"
    android:animateLayoutChanges="true"
    ...
/>

Add, update, or remove items from the layout

Now, all you need to do is add, remove, or update items in the layout and the items are animated automatically:

Kotlin

lateinit var mContainerView: ViewGroup
...
private fun addItem() {
    val newView: View = ...

    mContainerView.addView(newView, 0)
}

Java

private ViewGroup mContainerView;
...
private void addItem() {
    View newView;
    ...
    mContainerView.addView(newView, 0);
}