Middle
Kuidas rakendada animatsioone RecyclerView-s?
sobes.tech AI
Vastus AI-lt
RecyclerView kasutab ItemAnimator muutuste animatsioonide jaoks andmekogumis. Vaikimisi kasutatakse DefaultItemAnimator.
Kui toimuvad muudatused (elementide lisamine, eemaldamine, liigutamine), teavitab RecyclerView ItemAnimator-it. Animatsioonid analüüsivad neid muudatusi ja käivitavad vastavad animatsioonid.
ItemAnimator põhimeetodid muudatuste töötlemiseks:
animateAdd(): uue elemendi lisamise animatsioon.animateRemove(): elemendi eemaldamise animatsioon.animateMove(): elemendi liigutamise animatsioon.animateChange(): elemendi sisu muutmise animatsioon (näiteks andmete uuendamisel).
Kohandatud animatsioone luuakse pärides ItemAnimator või DefaultItemAnimator ja nende meetodite ülekirjutamisega. Meetodite sees saab kasutada erinevaid animatsiooniklassid, nagu ValueAnimator või ObjectAnimator.
Lihtne näide kohandatud lisamise animatsiooni kohta:
class CustomItemAnimator : DefaultItemAnimator() {
override fun animateAdd(holder: RecyclerView.ViewHolder): Boolean {
holder.itemView.alpha = 0f // Algseis: täiesti läbipaistev
holder.itemView.animate()
.alpha(1f) // Lõppseis: täielikult nähtav
.setDuration(addDuration) // Animatsiooni kestus
.setListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) {
dispatchAddFinished(holder) // Teavitamine RecyclerView pühendumisest
}
override fun onAnimationCancel(animation: Animator?) {
dispatchAddFinished(holder)
}
})
.start()
return true // Tagastame true, kui animatsioon on käivitatud
}
}
Kohandatud animatsiooni kasutamiseks tuleb seda määrata RecyclerView-s:
recyclerView.itemAnimator = CustomItemAnimator()