RecyclerView では ItemAnimator をセットすることでアニメーションを表示できるようになります。ItemAnimator は次のようなライブラリがあって好みのアニメーションに簡単に切り替えられるようになってます。
例えば ItemAnimators の ScaleUpAnimator を使ってアニメーションを実装すると次のような感じで表示されます。
val scaleUpAnimator = ScaleUpAnimator()
recycler_view.also { view ->
// 省略 : Adapter や LayoutManager をセットアップする
view.itemAnimator = scaleUpAnimator
}
こういったアニメーションをもう少し早くまたは遅くしたいときがあると思います。そういったときは setAddDuration、setChangeDuration、setMoveDuration、setRemoveDuration を設定することで簡単に時間を調節できます。
- RecyclerView.ItemAnimator | setAddDuration
- RecyclerView.ItemAnimator | setChangeDuration
- RecyclerView.ItemAnimator | setMoveDuration
- RecyclerView.ItemAnimator | setRemoveDurationa
例えば ScaleUpAnimator の setAddDuration と setRemoveDuration を変更してみます。すると追加と削除のときのアニメーションの表示間隔が変わります。
val scaleUpAnimator = ScaleUpAnimator().apply {
// 追加時のアニメーション間隔
addDuration = 2000
// 削除時のアニメーション時間
removeDuration = 4000
}
recycler_view.also { view ->
// 省略 : Adapter や LayoutManager をセットアップする
view.itemAnimator = scaleUpAnimator
}
RecyclerView でのアニメーションの時間を調整するには次の特徴を理解する必要がある。
- RecyclerView では ItemAnimation をセットすることでアニメーションを変更できる
- RecyclerView でアニメーションの時間を調整する場合は ItemAniamtor の setAddDuration、setChangeDuration、setMoveDuration、setRemoveDuration で変更できる。
本記事の内容の動作確認をしたプロジェクトがこちらにあります。
詳細を知りたいかたは以下を参照してください。