RecyclerView animations step 2: Solution

anim_slide_in_from_left.xml
<?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>
CounterAdapter.kt
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
    }
}

Last updated