package Ġandroidx . recyclerview . widget Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ Ċ class ĠSlide In Up Animator Ġ: ĠBase Item Animator () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġpre Animate Add Impl ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . item View . translation Y Ġ= Ġholder . item View . height . toFloat () ĊĠĠĠĠĠĠĠ Ġholder . item View . alpha Ġ= Ġ 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġanimate Add Impl ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġholder . item View ĊĠĠĠĠĠĠĠ Ġval Ġanimation Ġ= Ġview . animate () ĊĠĠĠĠĠĠĠ Ġm Add Animations . add ( holder ) ĊĠĠĠĠĠĠĠ Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. translation Y ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( add Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( anim ator : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Add Starting ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( anim ator : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( anim ator : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . set Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Add Finished ( holder ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Add Animations . remove ( holder ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Finished When Done (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġanimate Remove Impl ( holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġholder . item View ĊĠĠĠĠĠĠĠ Ġval Ġanimation Ġ= Ġview . animate () ĊĠĠĠĠĠĠĠ Ġm Remove Animations . add ( holder ) ĊĠĠĠĠĠĠĠ Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. translation Y ( holder . item View . height . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( remove Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( anim ator : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Remove Starting ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( anim ator : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . set Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Remove Finished ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Remove Animations . remove ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Finished When Done () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} Ċ } Ċ