iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0

我們在應用程式中很常需要向使用者展示資料,現在最常用的應該是 Recycler View 了,我們在使用 Recycler View 的時候,會把要展示的資料丟給 adapter 根據裡面的 ViewHolder 進行創建與綁定,但如果這次拿到的資料非常多的話,因為一次要拿到全部的資料,有可能會等很久,造成使用者體驗不好,而 Paging 可以幫助開發者載入和顯示本地或網路上更大的資料頁面。
當使用者在觀看資料的時候,通常只會透過裝置的小畫面來觀看內容,所以其實不用資料不用一開始就一步到位,所以Paging 透過逐步增量載入資料的方式,讓畫面感覺很流暢,也讓應用程式因為不需要一次將大量資料保存在記憶體中而提升效能。

Paging 的核心元件

  • PagingSource
    為特定頁面查詢載入資料區塊的基礎類別。這是資料層的一部分,通常會透過 DataSource 類別揭露,且後續由 Repository 揭露,以用於 ViewModel 中。
  • PagingConfig
    這個類別用於定義決定 Paging 行為的參數,包括頁面大小、是否啟用預留位置等等。
  • Pager
    這個類別負責產生 PagingData 資料流。這項作業視 PagingSource 而定,且應在 ViewModel 中建立。
  • PagingData
    分頁資料的容器。每次重新整理資料時,系統都會產生獨立且對應的 PagingData 發射項目,並由其專屬的 PagingSource 做為支援。
  • PagingDataAdapter
    PagingDataAdapter 是RecyclerView.Adapter 子類別,會在 RecyclerView 中顯示 PagingData。

參考檔案

Paging library overview


上一篇
第十六天:Android Architecture Components 之 Navigation
下一篇
第十八天:物件導向程式設計
系列文
轉職成 Android Developer 的最後一哩路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言