iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Mobile Development

Andoroid - Kotlin筆記 (新)系列 第 6

[Day6] Android - Kotlin筆記:RecycledViewPool

什麼是RecycledViewPool

RecycledViewPoolRecycledView的緩存池。
簡單來說,當你有很多RecycledView共用同個ViewHolder時,
就能使用RecycledViewPool來讓他們共用相同的ViewHolder


使用情境

  • 情境一:ViewPager + RecyclerView

我們在做分頁時常常會搭配ViewPagerViewPager2去做頁面間的切換。
而頁面間切換的RecyclerView的layout有時大同小異,
如果多個頁面間,都存在相同類型的ViewHolder,就可以使用RecycledViewPool
使用方法很簡單:

val rvPool by lazy { RecycledViewPool() }

recyclerView1.setRecycledViewPool(rvPool)
recyclerView2.setRecycledViewPool(rvPool)
recyclerView3.setRecycledViewPool(rvPool)
...

  • 情境二:提前創建ViewHolder

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)
}
            

參考:


上一篇
[Day5] Android - Kotlin筆記:ListAdapter + DiffUtil 進階應用 - 複數itemViewType
下一篇
[Day7] Android - Kotlin筆記:JetPack - KTX簡介
系列文
Andoroid - Kotlin筆記 (新)18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言