Recyclerview 上拉載入更多

2021-10-24 16:03:17 字數 2371 閱讀 5245

封裝後**

2. adapter

3.activity中

定義兩個 item , 第乙個是正常顯示內容的 item ,第二個是顯示正在載入檢視的 item 。如果 adapter 中(position + 1 == itemcount),則說明滑到了最下面,此時載入第二個布局。

在 oncreateviewholder 中對 viewtype 進行判斷,根據情況返回兩種不同的 viewholder。同樣,在onbindviewholder 中對兩種情況作不同處理。

在 activity 中對 recyclerview 的滑動事件進行監聽,如果 recyclerview 滑動到最下面,則進行相應的邏輯處理。

**如下(示例):

class myadapter(val data : list

): recyclerview.adapter()

class footvh(view: view): recyclerview.viewholder(view)

override fun getitemviewtype(position: int): int

else

} override fun oncreateviewholder(parent: viewgroup, viewtype: int): recyclerview.viewholder else

} override fun getitemcount(

): int

override fun onbindviewholder(holder: recyclerview.viewholder, position: int)

else

if(holder is footvh)

else if

(footstate == 3)

else if

(footstate == 4)}}

fun setfootstate(state: int)

}

定義乙個抽象類,減少activity中對recyclerview的監聽**

**如下(示例):

abstract class endrecycleronscrolllistener: recyclerview.onscrolllistener()}

abstract fun loadmore(

) fun setflag(flag: int)

}

)

}else }}

}, 1000)}}

)}fun getdata()}

}至此已經實現了上拉載入更多的功能,不過此時如果其他 recyclerview 也要實現上拉載入更多,就要寫許多重複**在 adapter 中,為了減少重複**,下面對 adapter 進行封裝。):

recyclerview.adapter()

override fun getitemviewtype(position: int): int

else

} override fun oncreateviewholder(parent: viewgroup, viewtype: int): recyclerview.viewholder

else

} override fun getitemcount(

): int

override fun onbindviewholder(holder: recyclerview.viewholder, position: int)

else

if(footstate == 3)

else

if(footstate == 4)

}else

} fun setfootstate(state: int)

}然後adapter中的寫法就是一般的寫法了

class myadapter(val data : list): recyclerview.adapter()

override fun oncreateviewholder(parent: viewgroup, viewtype: int): myvh

override fun getitemcount(): int

override fun onbindviewholder(holder: recyclerview.viewholder, position: int) )

}else }}

}, 1000)}}

)}fun getdata()}

}

參考文章

iOS CollectionView 上拉載入更多

無例外,離不開強大的 mjrefresh,1.在.m檔案中 property nonatomic,assign nsinteger page 定義乙個變數,每次需要展示的資料個數,並且在頁面初始的時候賦值。我在 demo 中每次新增 4條資料,所以在 viewdidload 中賦值為 page 4 ...

recyclerView上拉載入,下拉重新整理

匯入jar包 實現介面 pullbaseview.onheaderrefreshlistener,pullbaseview.onfooterrefreshlistener 設定 mrecyclerview.setonheaderrefreshlistener this 設定下拉監聽mrecycler...

RecycleView新增下拉重新整理 上拉載入更多

在google的android.support.v4包中,提供乙個swiperefreshlayout方法,用於實現下拉重新整理,實現的過程也非常簡單,那我們先來看一下swiperefreshlayout是什麼東西,其實從名字上來看,它就是乙個重新整理布局,我們來看它的繼承結構圖 從上面的繼承結構可...