五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

RecyclerView上拉加載的一種實(shí)現(xiàn)

2021-02-14 20:07 作者:スレーブ_スレイヤー  | 我要投稿

記錄學(xué)到的東西是一個(gè)好習(xí)慣,特別是對(duì)于我這種同一個(gè)功能每次都用不同方法實(shí)現(xiàn)的人來(lái)說,可以找到一個(gè)最優(yōu)的方案。這次是實(shí)現(xiàn)完了才發(fā)現(xiàn)和網(wǎng)上不一樣,我的方法是:

1.下拉加載要顯示一個(gè)進(jìn)度條,如果已經(jīng)是最后一頁(yè)就顯示一個(gè)“沒有更多”的文字。所以,要先把這兩個(gè)控件加到holder里,也就是后面的progressBarKitView和text。

Holder

2.在onCreateViewHolder方法里,根據(jù)viewType來(lái)實(shí)例化不同的Holder。0就是普通Item的Holder,1就是加載的Holder。

onCreateViewHolder

那么問題來(lái)了,怎么確定viewType呢。沒錯(cuò),如果是最后一個(gè)Item就把viewType設(shè)置成1。

這就是這個(gè)方法的缺陷了,需要在數(shù)據(jù)源末尾添加一條空的數(shù)據(jù)。

getItemViewType

3.最后實(shí)現(xiàn)onBindViewHolder,如果itemViewType是1就直接去加載數(shù)據(jù)然后把方法返回。

我這里因?yàn)榉?wù)器一次返回20條數(shù)據(jù),所以下一頁(yè)就是當(dāng)前的數(shù)據(jù)總數(shù)除以20再加1。

getResByTag內(nèi)部是開了線程的,所以要先切換到UI線程,然后把“沒有更多數(shù)據(jù)”的文字顯示。然后判斷,如果從服務(wù)器得到的數(shù)據(jù)為空或者總數(shù)據(jù)量小于20,認(rèn)為沒有更多數(shù)據(jù)需要加載,直接返回。

否則先把自己從數(shù)據(jù)源移除,再把從服務(wù)器獲取到的數(shù)據(jù)添加到數(shù)據(jù)源,最后再添加一個(gè)空項(xiàng)用于顯示加載的視圖,通知更新就OK了。

onBindViewHolder

以上。

RecyclerView上拉加載的一種實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
甘谷县| 泰宁县| 阿坝县| 铜山县| 冷水江市| 许昌市| 云浮市| 永胜县| 嘉兴市| 临澧县| 罗城| 平舆县| 合作市| 汉阴县| 广灵县| 游戏| 乌拉特中旗| 遂川县| 新安县| 扎鲁特旗| 黔江区| 蒙山县| 台东市| 合水县| 日照市| 紫阳县| 通道| 景东| 光山县| 长顺县| 北京市| 台安县| 峡江县| 金塔县| 双柏县| 沂水县| 和硕县| 澄迈县| 澄城县| 漳平市| 丹棱县|