關(guān)于recyclerview復(fù)用導(dǎo)致應(yīng)用卡頓崩潰

內(nèi)容如題,對于recyclerview復(fù)用,各個(gè)開發(fā)者都有自己的見解。
而本次實(shí)戰(zhàn)中,就是因?yàn)閺?fù)用,導(dǎo)致的一個(gè)性能問題。

場景還原

recyclerview里面有個(gè)textview控件,textview使用了setspan方法設(shè)置了圖片。然后滑動(dòng)了累計(jì)幾十個(gè)有圖片的item后,應(yīng)用卡死崩潰了。查看日志發(fā)現(xiàn),到后面每次有新的圖片進(jìn)行setspan的時(shí)候,就會(huì)進(jìn)行一個(gè)累加,到十幾個(gè)以后,就累加了一次需要加載十幾個(gè)圖片。

帶著這個(gè)問題,觀察思考。

最后發(fā)現(xiàn)是textview的recyclerview回收的時(shí)候,里面的span內(nèi)容沒有進(jìn)行回收導(dǎo)致的。使用一下代碼可以解決問題。
onBindViewHolder中,調(diào)用textview的
getEditable.clearspan()
getEditable.clear()
setText(null)
即可解決問題。原理是在每次加載的時(shí)候,都先清空textview原來的緩存信息,然后再更新數(shù)據(jù)。

that's all------------------------------------------------------------------------------------

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

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

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