什麼是RecycledViewPool
RecycledViewPool
是RecycledView
的緩存池。
簡單來說,當你有很多RecycledView
共用同個ViewHolder
時,
就能使用RecycledViewPool
來讓他們共用相同的ViewHolder
。
使用情境
ViewPager
+ RecyclerView
我們在做分頁時常常會搭配ViewPager
或ViewPager2
去做頁面間的切換。
而頁面間切換的RecyclerView
的layout有時大同小異,
如果多個頁面間,都存在相同類型的ViewHolder,就可以使用RecycledViewPool
。
使用方法很簡單:
val rvPool by lazy { RecycledViewPool() }
recyclerView1.setRecycledViewPool(rvPool)
recyclerView2.setRecycledViewPool(rvPool)
recyclerView3.setRecycledViewPool(rvPool)
...
itemView.recyclerView.apply {
//先把pool和viewholder創建出來,viewType則填入ViewHolder對應的ItemViewType
val viewHolder = leagueOddAdapter.createViewHolder(league_odd_list, viewType);
rvPool.putRecycledView(viewHolder);
setRecycledViewPool(rvPool);
layoutManager = LinearLayoutManager(this.context)
}
參考: