RecyclerView 中 ItemAnimator(Item添加移除動(dòng)畫效果)

RecyclerView 中 ItemAnimator

RecyclerView 中的列表中,當(dāng)某個(gè)數(shù)據(jù)被移除刷新時(shí),我們想讓它對(duì)應(yīng)的item移除時(shí)有個(gè)自定義動(dòng)畫效果怎么辦?RecyclerView 對(duì)外提供了 setItemAnimator(ItemAnimator animator) 方法。

ItemAnimator 類中有幾個(gè)重要方法:

animateAppearance(): 當(dāng) item 出現(xiàn)在屏幕上時(shí)被調(diào)用(可能是add或move)。
animateDisappearance(): 當(dāng) item 消失在屏幕上時(shí)被調(diào)用(可能是remove或move)。

animateChange(): 在 調(diào)用 notifyItemChanged() 或 notifyDataSetChanged() 時(shí)被調(diào)用。
animatePersistence(): 在不是調(diào)用 notifyItemChanged() 和 notifyDataSetChanged() 的情況下布局發(fā)生改變時(shí)被調(diào)用。

runPendingAnimations(): 動(dòng)畫執(zhí)行
isRunning(): 是否有動(dòng)畫要執(zhí)行或正在執(zhí)行。
dispatchAnimationsFinished(): 當(dāng)全部動(dòng)畫執(zhí)行完畢時(shí)被調(diào)用。

從RecyclerView 看到,有個(gè)默認(rèn)的 DefaultItemAnimator 動(dòng)畫,如果有自定義的,則會(huì)替換默認(rèn)的,看看 DefaultItemAnimator 是什么,它繼承了 SimpleItemAnimator 這個(gè)抽象類,SimpleItemAnimator 中有些抽象方法,好些方法上都有注釋,告訴我們這個(gè)方法的意思及要調(diào)用某些方法,DefaultItemAnimator 是個(gè)例子,里面有比較詳細(xì)的細(xì)節(jié)及邏輯,我們可以寫個(gè)子類,繼承 SimpleItemAnimator,把一些關(guān)鍵方法先寫個(gè)默認(rèn)值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容