RecyclerView animations step 2: Solution
Last updated
Last updated
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="-1000%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="700" />
</set>
class CounterAdapter(val context: Context, val items: List<Int>) : RecyclerView.Adapter<CounterAdapter.ViewHolder>() {
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val avatar = itemView.iv_added_item
val container = itemView.added_item_container
}
var lastPosition = -1
...
override fun onBindViewHolder(holder: CounterAdapter.ViewHolder, position: Int) {
holder.avatar.let { Glide.with(context).load(R.drawable.avatar_1).into(it) }
if (position > lastPosition || lastPosition == 0 && position == 0) {
val slideAnimation = AnimationUtils.loadAnimation(context, R.anim.anim_slide_in_from_left)
holder.itemView.animation = slideAnimation
holder.container.transitionToEnd()
holder.container.transitionToStart()
}
lastPosition = position
}
}