レイアウトの更新を自動でアニメーションにする

Android には、レイアウト変更のたびに自動的に実行できるプリロード アニメーションが用意されています。レイアウト内に属性を設定するだけで、レイアウトの変更をアニメーション化するよう Android システムに指示することができ、デフォルト アニメーションとして自動的に実行されるようになります。

ヒント: カスタム レイアウト アニメーションを作成する場合は、LayoutTransition オブジェクトを作成して、setLayoutTransition() メソッドを使用してレイアウトに組み込みます。

リストにアイテムを追加する際のデフォルト レイアウト アニメーションは次のとおりです。

レイアウト アニメーション
 

レイアウトを作成する

アクティビティのレイアウト XML ファイル内で、アニメーションを有効にするレイアウトの android:animateLayoutChanges 属性を true に設定します。たとえば、次のようになります。

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

レイアウトに対してアイテムを追加、更新、削除する

後は、レイアウトに対してアイテムの追加、削除、更新を行うだけで、各アイテムが自動的にアニメーション化されます。

Kotlin

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

        containerView.addView(newView, 0)
    }
    

Java

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