分頁

分頁程式庫可讓您在應用程式的RecyclerView中更輕鬆簡單地逐漸載入資料。

這個資料表會列出 androidx.paging 群組中的所有構件。

構件 穩定版 候選版 Beta 版 Alpha 版
paging-* 3.1.1 - - 3.2.0-alpha02
paging-compose - - - 1.0.0-alpha16
本程式庫上次更新日期:2022 年 8 月 10 日

宣告依附元件

如果要為「分頁」新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
  def paging_version = "3.1.1"

  implementation "androidx.paging:paging-runtime:$paging_version"

  // alternatively - without Android dependencies for tests
  testImplementation "androidx.paging:paging-common:$paging_version"

  // optional - RxJava2 support
  implementation "androidx.paging:paging-rxjava2:$paging_version"

  // optional - RxJava3 support
  implementation "androidx.paging:paging-rxjava3:$paging_version"

  // optional - Guava ListenableFuture support
  implementation "androidx.paging:paging-guava:$paging_version"

  // optional - Jetpack Compose integration
  implementation "androidx.paging:paging-compose:1.0.0-alpha16"
}

Kotlin

dependencies {
  val paging_version = "3.1.1"

  implementation("androidx.paging:paging-runtime:$paging_version")

  // alternatively - without Android dependencies for tests
  testImplementation("androidx.paging:paging-common:$paging_version")

  // optional - RxJava2 support
  implementation("androidx.paging:paging-rxjava2:$paging_version")

  // optional - RxJava3 support
  implementation("androidx.paging:paging-rxjava3:$paging_version")

  // optional - Guava ListenableFuture support
  implementation("androidx.paging:paging-guava:$paging_version")

  // optional - Jetpack Compose integration
  implementation("androidx.paging:paging-compose:1.0.0-alpha16")
}

如要進一步瞭解如何使用 Kotlin 擴充功能,請參閱 ktx 說明文件

如要進一步瞭解依附元件,請參閱新增建構依附元件一文。

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 文件

3.2 版本

3.2.0-alpha02 版本

2022 年 8 月 10 日

發布 androidx.paging:paging-*:3.2.0-alpha023.2.0-alpha02 版本包含這些修訂版本。

新功能

  • Paging 現在會透過 AsyncPagingDataDifferPagingDataAdapter 類別提供記錄,藉此顯示從 PagingData 收集的偵錯資訊。
  • 您可以透過 adb shell 指令 adb shell setprop log.tag.Paging [DEBUG|VERBOSE]. 啟用記錄功能 (b/235527159)

修正錯誤

  • 修正搭配執行階段 paging-runtime:3.1.1 以下版本使用 paging-common:3.2.0-alpha01 時發生的缺少 PagingDataDiffer 建構函式錯誤。(b/235256201)

3.2.0-alpha01 版本

2020 年 6 月 1 日

androidx.paging:paging-*:3.2.0-alpha01 發布。3.2.0-alpha01 版本包含這些修訂版本。

API 變更

  • 新增 PagingDataAdapterAsyncPagingDataDiffer 的建構函式,可接受 CoroutineContext,而非 CoroutineDispatcher。(Idc878)
  • 根據預設,PagingData.from()PagingData.empty() 將不再對簡報者端的 CombinedLoadStates 造成影響。已新增一個新超載,可將 sourceLoadStatesremoteLoadStates 傳遞至這些建構函式,以維持將 LoadStates 設為完整結束 (即 NotLoading(endOfPaginationReached = false)) 的現有行為,並可視需要加入遠端狀態。如果未傳遞 LoadStates,則前一個 CombinedLoadStates 會在收到靜態 PagingData 時保留在簡報者端。(Ic3ce5b/205344028)

修正錯誤

  • 現在,如果傳回的結果是空值,但已設定非空值 initialKey,則 PagingSource.getRefreshKey() 的結果現在已可正確用於 initialKey。(Ic9542b/230391606)

外部貢獻

  • 由於 test-coroutines-lib 遷移,更新了 :compose:ui:ui-test API (updateApi) (I3366d)

3.1 版本

3.1.1 版本

2022 年 3 月 9 日

androidx.paging:paging-*:3.1.1 發布。3.1.1 版本包含這些修訂版本。

修正錯誤

  • 已移除不同版本之間由 .cachedIn() 錯誤插入的中階 LoadState.NotLoading 事件。重新整理時或無效判定期間,此變更可讓您在重新嘗試失敗的載入之間移除多餘的 LoadState.NotLoading 事件,以更輕鬆地對 LoadState 變更做出回應。

3.1.0 版本

2021 年 11 月 17 日

androidx.paging:paging-*:3.1.0 發布。3.1.0 版包含這些修訂版本。

自 3.0.0 版以來的重要異動

  • Flow<PagingData>.observableFlow<PagingData>.flowable API 不再為實驗性
  • LoadState 的行為變更:
    • 對於 PagingSourceRemoteMediatorendOfPaginationReached 現在一律為 LoadType.REFRESHfalse
    • Paging 的 LoadStates 現在會於傳送至下游版本前等候來自 PagingSourceRemoteMediator 的有效值。新一代 PagingData 現在將一律正確地以 Loading 開始做為重新整理狀態,而不會在某些情況下錯誤地重設為 NotLoading
    • 簡報者 API 中的 .loadStateFlow.addLoadStateListener 不再會多餘地傳送初始 CombinedLoadStates,一律將中介者狀態設為 null
  • 過去幾代的功能現已因失去效力/新代出現而取消。在 Flow<PagingData> 中應已不再需要使用 .collectLatest,但還是建議使用。
  • PagingSource.LoadResult.Invalid 已新增為 PagingSource.load 的新傳回類型,而這會導致 Paging 捨棄此 PagingSource 中所有待處理的或載入要求,並使之失效。此傳回類型經特別設計,可處理可能從資料庫或網路傳回且可能無效或過時的資料。
  • 已新增 .onPagesPresented.addOnPagesUpdatedListener 簡報者 API,這些 API 會以 UI 中呈現的頁面方式同步觸發。在以下情況中,可能會有頁面更新:
    • 新一代 PagingData 的初始載入作業完成,不論新一代項目是否包含顯示項目的任何變更。例如:新一代在沒有更新的情況下完成初始載入,因為清單完全相同時仍會觸發這個回呼。
    • 即使插入的網頁不含任何新項目,系統還是會插入網頁。
    • 即使網頁已清空,系統也不會捨棄網頁。

3.1.0-rc01 版本

2021 年 11 月 3 日

發布 androidx.paging:paging-*:3.1.0-rc013.1.0-rc01 版本包含這些修訂版本。

修正錯誤

  • 修正 .cachedIn() 中的多個競爭狀況 + 記憶體流失,以免在沒有觀察者,或觀察者改用新版 PagingData 之間 Paging 下由傳送多個載入事件。(Ib682e)

3.1.0-beta01 版本

2021 年 10 月 13 日

發布 androidx.paging:paging-*:3.1.0-beta013.1.0-beta01 版本包含這些修訂版本。

修正錯誤

  • 修正問題:許多快速項目存取權可能導致預先註冊服務在 prefetchDistance 中遭到捨棄,進而導致網頁停止回應。假如同時出現多個項目,且順序會優先於使用者的捲動方向,就會造成這個問題。系統現在會緩衝處理這些項目的存取並設定為優先處理,藉此防止這些項目遭到捨棄。(aosp/1833273)

3.1.0-alpha04 版本

2021 年 9 月 29 日

發布 androidx.paging:paging-*:3.1.0-alpha043.1.0-alpha04 版本包含這些修訂版本。

API 變更

  • Flow<PagingData>.observableFlow<PagingData>.flowable API 不再為實驗性。(Ie0bdd)

修正錯誤

  • 在 LoadState 中,LoadType.REFRESHendOfPaginationReached 值現在一律是 false。先前,RemoteMediator REFRESH 的 endOfPaginationReached 可能是 true,但 PagingSource 不是。此行為現已合併為一律傳回 false,因為對於 REFRESH 來說這沒有任何意義,並且現在會以 API 合約的部分記錄在 LoadState 中。在判斷分頁是否終止時,您應該就 APPEND 或 PREPEND 指示部分總是執行。(I047b6)
  • 來自 Paging 的 LoadState 現在會等待來自 PagingSource 和 RemoteMediator 的有效值,然後在各個世代之間發出下游。這可避免新一代 PagingData 在 MergedLoadStates.source.refresh 中傳送 NotLoading (如果已經是 Loading);新一代 PagingData 的重新整理狀態現在一律會正確地以 Loading 開始,而不會在某些情況下以錯誤的方式先以重設為 NotLoading 開始。

    過去幾代的功能現已因失去效力/新代出現而取消。您應已不再需要使用 Flow<PagingData> 上的 .collectLatest,但仍強烈建議使用。(I0b2b5b/177351336b/195028524)

  • 簡報者 API 上的 .loadStateFlow.addLoadStateListener 不會再多餘地傳送總是將中介者狀態設為 null、來源狀態設為 NotLoading(endOfPaginationReached = false) 的初始內容 CombinedLoadStates。這表示:

    1. 如果您使用 RemoteMediator,則系統會一律填入中介者狀態。
    2. 如果沒有從 PagingData 收到實際的 CombinedLoadStates,在 .loadStateFlow 上註冊新的 loadState 事件監聽器或新的收集器時,不會立即發出目前的值。如果在提交 PagingData 之前就啟動收集器或事件監聽器,就有可能發生這種情況。(I1a748)

3.1.0-alpha03 版本

2021 年 7 月 21 日

發布 androidx.paging:paging-*:3.1.0-alpha033.1.0-alpha03 版本包含這些修訂版本。

API 變更

  • 在 PagingSource 中加入第三個 LoadResult 傳回類型 LoadResult.Invalid。當 PagingSource.load 傳回 LoadLoad.Invalid 時,分頁會捨棄已載入的資料,並將 PagingSource 設為無效。此傳回類型旨在處理可能從資料庫或網路傳回可能無效或過時的資料。

    舉例來說,如果基礎資料庫已寫入,但 PagingSource 未及時設為無效,則如果其實作取決於其載入的幕後資料集不變性,就可能會傳回不一致的結果 (例如:LIMIT OFFSET 樣式 dB 實作)。在這個情況下,建議在載入後檢查是否設為無效,並傳回 LoadResult.Invalid。這樣一來,Paging 就會捨棄所有待處理的或日後載入至這個 PagingSource 的載入要求,並將之設為無效。

    此傳回類型也由採用 LivePagedList 或 RxPagedList 的 Paging2 API 支援。搭配 Paging2 的 PagedList API 使用 PagingSource 時,系統會立即卸離 PagedList,停止進一步嘗試在此 PagedList 中載入資料,並觸發 PagingSource 的無效檢查。

    LoadResult 是密封類別,也就是說,這是與來源不相容的變更,因此直接使用 PagingSource.load 結果處理用途必須處理位於編譯時間的 LoadResult.Invalid 無效檢查。舉例來說,Kotlin 使用者如果使用 exhaustive-when 檢查傳回類型,就必須加入無效類型的檢查。(Id6bd3b/191806126b/192013267)。

修正錯誤

  • 現在如果已在 PagingSource/DataSource 上失效,系統就會自動觸發透過 PagingSource.registerInvalidatedCallback 或 DataSource.addInvalidatedCallback 新增的無效回呼。這可解決導致分頁停止輸入無效信號的競爭狀況,且在提供初始載入期間已經無效的來源時卡住的問題。此外,無效回呼現在最多會在系統觸發一次呼叫之後,隨即移除。(I27e69)
  • 從新執行個體化的 PagedList 串流提交預留位置初始值 (InitialPagedList),例如:LivePagedListBuilder 或 RxPagedListBuilder 將不再清除先前載入的資料。

3.1.0-alpha02 版本

2021 年 7 月 1 日

發布 androidx.paging:paging-*:3.1.0-alpha023.1.0-alpha02 版本包含這些修訂版本。

新功能

  • 新增 onPagesPresented 事件監聽器和流程簡報 API,此 API 會在 UI 更新完畢後立即觸發。

    由於這些更新會與 UI 保持同步,因此您可以呼叫 .snapshot 和 .getItemCount 等轉接程式方法,以在套用更新後檢查狀態。請注意,系統仍會明確呼叫 .snapshot(),因為如果每次更新都要呼叫,成本可能相當高。

    網頁更新可能在下列情況中發生:

    • 新一代 PagingData 的初始載入作業完成,不論新一代項目是否包含顯示項目的任何變更。例如:新一代在沒有更新的情況下完成初始載入,因為清單完全相同時仍會觸發這個回呼。
    • 即使插入的網頁不含任何新項目,系統還是會插入網頁。
    • 即使網頁已清空,系統也不會捨棄網頁 (I272c9b/189999634)

修正錯誤

  • 從 LivePagedList 或 RxPagedList 產生的初始值存取 PagedList.dataSource,不會再錯誤地擲回 IllegalStateException (I96707)

3.1.0-alpha01 版本

2021 年 6 月 2 日

發布 androidx.paging:paging-*:3.1.0-alpha013.1.0-alpha01 版本包含這些修訂版本。

API 變更

  • paging-rxjava3 提供的類別現在於 androidx.paging.rxjava3 套件中提供,因此不會與 paging-rxjava2 發生衝突 (Ifa7f6)

修正錯誤

  • 修正分頁有時會導致 ReoprView 傳送非預期事件的事件,導致某些事件提前觸發的問題。(Ic507fb/182510751)。

外部貢獻

  • 在 rxjava3 構件中加入已淘汰的 PagedList 相容 API (Id1ce2b/182497591)

Paging Compose 1.0.0 版本

1.0.0-alpha16 版本

2022 年 8 月 10 日

發布 androidx.paging:paging-compose:1.0.0-alpha161.0.0-alpha16 版本包含這些修訂版本。

新功能

  • Paging 現在會透過 LazyPagingItems 類別提供記錄,藉此顯示從 PagingData 收集的偵錯資訊。
  • 您可以透過 adb shell 指令 adb shell setprop log.tag.Paging [DEBUG|VERBOSE] 啟用記錄功能。([b/235527159}(https://issuetracker.google.com/issues/235527159))

修正錯誤

  • 修正搭配 paging-common:3.1.1 使用 paging-compose:1.0.0-alpha15 時發生的缺少 PagingDataDiffer 建構函式錯誤。(b/235256201b/239868768)

1.0.0-alpha15 版本

2020 年 6 月 1 日

發布 androidx.paging:paging-compose:1.0.0-alpha151.0.0-alpha15 版包含這些修訂版本。

API 變更

  • 新增 PagingDataAdapterAsyncPagingDataDiffer 的建構函式,可接受 CoroutineContext,而非 CoroutineDispatcher。(Idc878)

修正錯誤

  • LazyPagingItems 現在會將初始 loadState 設為重新整理 LoadState.Loading。(I55043b/224855902)

1.0.0-alpha14 版本

2021 年 10 月 13 日

發布 androidx.paging:paging-compose:1.0.0-alpha141.0.0-alpha14 版本包含這些修訂版本。

1.0.0-alpha13 版本

2021 年 9 月 29 日

發布 androidx.paging:paging-compose:1.0.0-alpha131.0.0-alpha13 版本包含這些修訂版本。

API 變更

  • LazyPagingItems.snapshot() 函式改為 LazyPagingItems.itemSnapshotList 屬性 (Ie2da8)
  • 移除淘汰的 LazyPagingItems.getAsState() (Ie65e4)

1.0.0-alpha12 版本

2021 年 7 月 21 日

發布 androidx.paging:paging-compose:1.0.0-alpha121.0.0-alpha12 版本包含這些修訂版本。

API 變更

  • items(lazyPagingItems)itemsIndexed(lazyPagingItems) 過去使用 LazyColumn/Row 與 Paging 連結,現在接受選項鍵參數,因此可讓您指定代表項目的固定鍵。詳情請參閱這篇文章。(I7986d)
  • 函式 lazyPagingItems.getAsState(index) 已淘汰。改用 lazyPagingItems[index]。(I086cbb/187339372)。

1.0.0-alpha11 版本

2021 年 6 月 30 日

發布 androidx.paging:paging-compose:1.0.0-alpha111.0.0-alpha11 版本包含以下修訂項目。

1.0.0-alpha10 版本

2021 年 6 月 2 日

發布 androidx.paging:paging-compose:1.0.0-alpha101.0.0-alpha10 版本包含以下修訂項目。

1.0.0-alpha09 版本

2021 年 5 月 18 日

發布 androidx.paging:paging-compose:1.0.0-alpha091.0.0-alpha09 版本包含以下修訂項目。

修正錯誤

  • LazyPagingItems 的 itemCount 和項目 getter 現為可觀察,因此也可與 LazyVerticalGrid 搭配使用 (Ie2446b/171872064b/168285687)

Compose 相容性

  • androidx.paging:paging-compose:1.0.0-alpha09 只與 1.0.0-beta07 以上的 Compose 版本相容。

1.0.0-alpha08 版本

2021 年 2 月 24 日

發布 androidx.paging:paging-compose:1.0.0-alpha081.0.0-alpha08 版本包含這些修訂版本。

更新以與 Compose 1.0.0-beta01 整合。

1.0.0-alpha07 版本

2021 年 2 月 10 日

發布 androidx.paging:paging-compose:1.0.0-alpha071.0.0-alpha07 版本包含這些修訂版本。

更新以與 Compose Alpha12 整合。

1.0.0-alpha06 版本

2021 年 1 月 28 日

發布 androidx.paging:paging-compose:1.0.0-alpha061.0.0-alpha06 版本包含這些修訂版本。

修正錯誤

更新以依附 Compose 1.0.0-alpha11。

1.0.0-alpha05 版本

2021 年 1 月 13 日

發布 androidx.paging:paging-compose:1.0.0-alpha051.0.0-alpha05 版本包含這些修訂版本。

進行相關更新,以依附於 Compose 1.0.0-alpha10。

1.0.0-alpha04 版本

2020 年 12 月 16 日

發布 androidx.paging:paging-compose:1.0.0-alpha041.0.0-alpha04 版本包含這些修訂版本。

修正錯誤

  • 已更新便利屬性,CombinedLoadStates.refreshCombinedLoadStates.prependCombinedLoadStates.append 改為從 LoadingNotLoading 採用中介服務和來源載入狀態 NotLoading 確保已套用遠端更新。(I65619)

1.0.0-alpha03 版本

2020 年 12 月 2 日

發布 androidx.paging:paging-compose:1.0.0-alpha031.0.0-alpha03 版本包含這些修訂版本。

  • 更新以比對 Compose 1.0.0-alpha08。

1.0.0-alpha02 版本

2020 年 11 月 11 日

發布 androidx.paging:paging-compose:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

API 變更

  • 新增 .peek().snapshot().retry().refresh() 方法至 LazyPagingItem,可公開與 AsyncPagingDataDifferPagingDataAdapter 中相同的功能 (Iddfe8b/172041660)

1.0.0-alpha01 版本

2020 年 10 月 28 日

發布 androidx.paging:paging-compose:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

新功能

paging-compose 成果可提供 Paging LibraryJetpack Compose 之間的整合。簡易使用範例:

  @Composable
  @OptIn(ExperimentalLazyDsl::class)
  fun ItemsDemo(flow: Flow<PagingData<String>>) {
      val lazyPagingItems = flow.collectAsLazyPagingItems()
      LazyColumn {
          items(lazyPagingItems) {
              Text("Item is $it")
          }
      }
  }

3.0.1 版本

3.0.1 版本

2021 年 7 月 21 日

發布 androidx.paging:paging-*:3.0.13.0.1 版本包含這些修訂版本。

修正錯誤

  • 存取從 LivePagedListRxPagedList 初始值產生的 PagedList.dataSource,可正確地擲回 IllegalStateException (I96707)

3.0.0 版本

3.0.0 版本

2021 年 5 月 5 日

發布 androidx.paging:paging-*:3.0.03.0.0 版本包含這些修訂版本。

3.0.0 的主要功能

Paging 2.xx 現有的 API 大多已遭到淘汰,並改用全新的 Paging 3 API 進行以下改善:

  • 優質的 Kotlin 協同程式和流程支援
  • 支援取消
  • 內建載入狀態和錯誤信號
  • 重試 + 重新整理功能
  • 全部三個 DataSource 子類別已合併為統合的 PagingSource 類別
  • 自訂頁面轉換,包括可新增分隔符的內建轉換功能
  • 載入狀態標頭和頁尾

3.0.0-rc01 版本

2021 年 4 月 21 日

發布 androidx.paging:paging-*:3.0.0-rc013.0.0-rc01 版本包含這些修訂版本。

修正錯誤

  • 修正分頁有時會導致 ReoprView 傳送非預期事件的事件,導致某些事件提前觸發的問題。(Ic507fb/182510751)。

3.0.0-beta03 版本

2021 年 3 月 24 日

發布 androidx.paging:paging-*:3.0.0-beta033.0.0-beta03 版本包含這些修訂版本。

修正錯誤

  • 我們已修改清單在重新載入時處理預留位置的方式,以防止 RecyclerView 發生非預期的跳轉。詳情請參閱 NullPaddedDiffing.md。(If1490b/170027529b/177338149)。
  • 呼叫 .build() 時,不同的 PagedList 建構工具 (舊版相容性路徑) 不會再於主執行緒上同步呼叫 DataSource.Factory.create()。(b/182798948)

3.0.0-beta02 版本

2021 年 3 月 10 日

發布 androidx.paging:paging-*:3.0.0-beta023.0.0-beta02 版本包含這些修訂版本。

API 變更

  • Rx3 擴充功能現在可正確散佈 @ExperimentalCoroutinesApi 選擇加入的規定。先前這些會於 @get 方法上標記,並且 Kotlin 編譯器會忽略這些方法,原因是:https://youtrack.jetbrains.com/issue/KT-45227 (I5733c)

修正錯誤

  • 強制限制實驗性 API 的公開使用方式 (I6aa29b/174531520)
  • 修正在呼叫遠端重新整理時,PagingState 總是會為 null 的錯誤。
  • 修正 PagingSource 傳回的空白網頁可能導致 Paging 再次擷取以完成 prefetchDistance 的分頁,造成分頁會「停滯」的錯誤。

3.0.0-beta01 版本

2021 年 2 月 10 日

發布 androidx.paging:paging-*:3.0.0-beta013.0.0-beta01 版本包含這些修訂版本。

API 變更

  • Rx2 和 Rx3 包裝函式現在會顯示其依賴的實驗性註解。如果在 paging-rxjava2 或 paging-rxjava3 中使用 Rx 相容性包裝函式,現在必須使用 @OptIn(ExperimentalCoroutinesApi::class) 註解使用方式 (Ib1f9d)

修正錯誤

  • 修正透過相容性路徑使用 v2 DataSource API 時,有時會擲回 IndexOutOfBoundsException: Inconsistency detected 的問題
  • DataSource 初始化期間,如果透過相容性路徑使用 isInvalid 呼叫,現在會正確地在 captureDispatcher 上啟動 (而非主執行緒)。修正使用聊天室的 PagingSource 實作時,會因為主要執行緒上的 Db 存取導致 IllegalStateException 的問題。

3.0.0-alpha13 版本

2021 年 1 月 27 日

發布 androidx.paging:paging-*:3.0.0-alpha133.0.0-alpha13 版本包含這些修訂版本。

API 變更

  • PagingSource.getRefreshKey 已不再為實作時的選擇性選項,現在是摘要函式,沒有預設實作。遷移使用者仍可繼續傳回預設實作,也就是只會傳回 null,但 getRefreshKey() 應根據使用者當前的捲動位置傳回金鑰,以允許 Paging 繼續透過 PagingState.anchorPosition 在可視區域周圍的中央附近載入 (可能的話)。(I4339a)
  • InvalidatingPagingSourceFactory 現在為最終等級 (Ia3b0a)
  • 允許使用額外的選擇性 SeparatorType 參數,設定終端機分隔符 (標頭/頁尾) 行為。兩種選項包括:
    • FULLY_COMPLETE - 現有行為;等待 PagingSource 和 RemoteMediator 標示為 endOfPaginationreached 後再新增終端機分隔符。如未使用 RemoteMediator,則忽略遠端 loadState。如果只要在區段完整載入時才顯示區段分隔符 (包括從遠端來源擷取網路等資料),這個方法就非常實用。
    • SOURCE_COMPLETE - 只有在使用 RemoteMediator 時,才等待 PagingSource 標示 endOfPaginationReached。這可讓系統在初始載入時同步顯示標頭和頁尾,避免使用者必須捲動畫面才能看到終端機分隔符。(Ibe993b/174700218)。

修正錯誤

  • 修正在 PageFetcher 都還沒有從 PagingSource 開始載入,PagingSource 就會變成無效,導致記憶體流失的問題。(I9606bb/174625633)

3.0.0-alpha12 版本

2021 年 1 月 13 日

發布 androidx.paging:paging-*:3.0.0-alpha123.0.0-alpha12 版本包含這些修訂版本。

API 變更

  • InvalidatingPagingSourceFactory 已不再是摘要類別,因為其從未採用任何摘要方法。(I4a8c4)
  • 針對 Java 使用者新增接受 ViewModel 而不是 Lifecyle 或 CoroutineScope 的 .cachedIn() 超載。(I97d81b/175332619)
  • 接受 Executor 做為轉換運算子引數,允許 Java 呼叫端能夠以非同步的方式使用 PagingData 轉換作業。所有 -Sync 轉換運算子現在都已移除 -Sync 字尾,而 Kotlin Coroutine 使用者必須呼叫改為接受暫停方塊的擴充功能函式以進行釐清。所有 PagingData 轉換運算子均已移至靜態 PagingDataTransforms 類別底下的擴充功能。Java 使用者必須透過靜態輔助程式呼叫,例如:PagingDataTransforms.map(pagingData, transform) 無為 Kotlin 使用者,語法相同,但必須匯入函式。(If6885b/172895919)

修正錯誤

  • 修正當分頁已結束,不會在 adapter.refresh() 期間呼叫 RemoteMediator.load() 的錯誤。

3.0.0-alpha11 版本

2020 年 12 月 16 日

發布 androidx.paging:paging-*:3.0.0-alpha113.0.0-alpha11 版本包含這些修訂版本。

新功能

  • 針對以下基本用途新增儲存狀態支援 (完整支援,特別是分層來源案例仍在進行中):
    • 系統會快取流程,但不會終止應用程式 (例如在檢視表模型中快取流程,並在程序重新建立活動)
    • 計算分頁來源時,預留位置就會啟用,且版面配置不會改變。

API 變更

  • PagingSource.getRefreshKey() 現在是穩定版 API (I22f6fb/173530980)
  • PagingSource.invalidate 不再是開放函式。如果需要在無效時收到通知,請考慮呼叫 RegisterInvalidatedCallback 方法,而不要覆寫無效狀態。(I628d9b/173029013b/137971356)
  • Pager 現有一般建構函式及單一實驗性建構函式,而不會透過選擇加入註解將實驗性 API 外洩給非實驗的公開 API。(I9dc61b/174531520)
  • 已更新便利屬性,CombinedLoadStates.refreshCombinedLoadStates.prependCombinedLoadStates.append 改為從 LoadingNotLoading 採用中介服務和來源載入狀態 NotLoading 確保已套用遠端更新。(I65619)
  • LoadParams.pageSize 已移除 (已不適用)。 建議在 PagingSource 中使用 LoadParams.loadSize

    LoadParams.loadSize 一律等於 PagingConfig.pageSize,初始呼叫呼叫等於 PagingConfig.initialLoadSize 除外。

    如果是在不使用 Pager 或 PagedList 的情況下測試 Paging2 DataSource,且如果也設定 initialLoadSize,則 pageSize 可能會與 PagingConfig.pageSize 不相符。如果必須測試,請嘗試使用 Pager/PagedList,然後在內部為 DataSource 載入方法設定正確的 PageSize。(I98ac7b/149157296)

修正錯誤

  • 修正問題:在搭配 PagingConfig.maxSize 組合使用分隔符時,因 IllegalStateException 而導致當機的問題。(I0ed33b/174787528)
  • 修正如果已設定 RemoteMediator,PREPEND/APPEND 的載入狀態不會在初始載入後立即更新至 NotLoading(endOfPaginationReached = true) 的問題 (I8cf5a)
  • 修正問題:簡報者方 API (例如 .snapshot()、.peek() 等) 會在 ListUpdateCallback 更新中傳回先前的 (過時) 清單。
  • 修正問題:分隔符運算子與 RemoteMediator 搭配使用時,無法新增標頭或頁尾
  • 修正問題:RemoteMediator 的 LoadState NotLoading 更新會在 Loading 狀態中停滯
  • 修正問題:Paging2.0 相容性 API (.asPagingSourceFactory()) 可能導致備份 DataSource 在不正確的 CoroutineDispatcher 上初始化。這個方法可以解決當機和潛在 ANR 問題,特別是當聊天室使用現行的 PagingSource 時,就會使用這個相容性路徑。

3.0.0-alpha10 版本

2020 年 12 月 2 日

發布 androidx.paging:paging-*:3.0.0-alpha103.0.0-alpha10 版本包含這些修訂版本。

API 變更

  • 已淘汰的 dataRefreshFlowdataRefreshListener API 因為會載入 loadStateFlow/Webhook 更新,所以已經移除。對於這些遷移,loadStateFlow 對應如下:

    loadStateFlow.distinctUntilChangedBy { it.refresh }
        .filter { it.refresh is NotLoading }
    

    (Ib5570b/173530908)

修正錯誤

  • RemoteMediator REFRESH 適用的 endOfPaginationreached 現已正確推送至 LoadState 更新,並防止遠端 APPENDPREPEND 觸發。(I94a3fb/155290248)。
  • 因為空白初始資訊頁面或重度篩選造成的空白清單分享螢幕畫面,系統不會再防止 Paging 啟動 PREPENDAPPEND 載入。(I3e702b/168169730)
  • 修正問題:如果重複發生無效狀態,系統不會在 PagingSource 的後續產生時呼叫 getRefreshKey。(I45460b/170027530)

外部貢獻

  • 加入新的摘要類別 InvalidatingPagingSourceFactory,並有 .invalidate(),可轉寄無效狀態至其發出的所有 PagingSource。感謝 @claraf3!(Ie71fcb/160716447)

已知問題

  • 使用 RemoteMediator 時,.insertSeparators() 轉換中的標頭和頁尾可能不會立即顯示 b/172254056
  • 如果無效狀態和 PagingSource.load(LoadParams.Refresh(...))RemoteMediator.load() 傳回前使用 RemoteMediator,可能導致遠端 LoadState 停滯 b/173717820

3.0.0-alpha09 版本

2020 年 11 月 11 日

發布 androidx.paging:paging-*:3.0.0-alpha093.0.0-alpha09 版本包含這些修訂版本。

API 變更

  • 完全淘汰有 replaceWith 子句的 dataRefreshFlow/Listener 方法。(I6e2dd)

修正錯誤

  • 修正在搭配 RemoteMediator 使用分隔符時觸發 IllegalArgumentException,而不在傳回 EndOfPagination 的遠端載入時觸發的問題 (I3a260)

3.0.0-alpha08 版本

2020 年 10 月 28 日

發布 androidx.paging:paging-*:3.0.0-alpha083.0.0-alpha08 版本包含這些修訂版本。

API 變更

  • DataSource.InvalidatedCallback 的 Kotlin/Java 變體是透過功能介面 (Kotlin 1.4 提供),在 Kotlin 中啟用 SAM 轉換功能合併而成。這同時修正了在 .map.mapByPage 轉換之後,系統未呼叫無效回呼的 Kotlin 變體的錯誤。(I1f244b/165313046)。

修正錯誤

  • Paging 與 ViewPager 的互動大幅提升。具體而言,Paging 將不再因網頁無效而取消 RemoteMediator#load 呼叫。而且,如需 REFRESH,在 REFRESH 要求順利完成前都不會再做出附加/前附的載入要求。(I6390bb/162252536)
  • 已為 androidx (I4bbeab/138602561) 啟用 API Lint 查找缺少 GetGetterMatchingBuilder
  • 已修正 .withLoadState* ConcatAdapter 輔助程式會因背景執行緒通知 RecyclerView 而停止運作的問題 (I18bb5b/170988309)
  • 修正載入小型的非空白網頁,有時會導致預先擷取功能無法正確觸發的問題。Iffda3 b/169259468

3.0.0-alpha07 版本

2020 年 10 月 1 日

androidx.paging:paging-*:3.0.0-alpha07 發布。3.0.0-alpha07 版本包含這些修訂版本。

API 變更

  • 非同步的 PagingData Guava 運算子現在接受使用 Executor 參數以控制執行環境。(Id4372)

修正錯誤

  • 修正因競爭狀況而在 RemoteMediator 中擲回的 IndexOutOfBounds 例外狀況。(I00b7fb/165821814)。
  • 修正 DataSource -> PagingSource 轉換中的競爭狀況,可能導致 DatagingSource 忽略 DataSource 的無效信號。
  • 修正網頁擷取邏輯中的問題:在某些情況下,在叫用 PagingData 轉接程式.Refresh() 後,才會成功產生新一代的 PagingSource
  • 過去將 DataSource 轉換成 PagingSource (例如 Room 製作的產品) 時,會導致遠端捲動的位置有時會遺失,這個問題現已修正

外部貢獻

  • 感謝 @simonschiller,為 PagingData 新增 RxJava2、RxJava3 和 Guava 式非同步轉換運算子!

3.0.0-alpha06 版本

2020 年 9 月 2 日

androidx.paging:paging-*:3.0.0-alpha06 發布。3.0.0-alpha06 版本包含這些修訂版本。

API 變更

  • 現在只要呼叫 PagingDataAdapter.setHasStableIds,系統會一律針對特定情況提供明確的訊息 ID 支援訊息擲回 UnsupportedOperationException。(Ib3890b/158801427)

修正錯誤

  • InsertSeparators 不會再過濾空白網頁,因此即使插入許多空白網頁,也不會影響顯示器的預先擷取距離。(I9cff6b/162538908)。

3.0.0-alpha05 版本

2020 年 8 月 19 日

androidx.paging:paging-*:3.0.0-alpha05 發布。3.0.0-alpha05 版本包含這些修訂版本。

修正錯誤

  • 現在即使呈現的資料經過重度篩選,系統仍可預先擷取網頁
  • LoadResult.Error 傳回至已重試的載入,不會再導致項目存取錯誤再次觸發

外部貢獻

  • 感謝 Clara F 協助完成部分測試!(549612)

3.0.0-alpha04 版本

2020 年 8 月 5 日

androidx.paging:paging-*:3.0.0-alpha04 發布。3.0.0-alpha04 版本包含這些修訂版本。

API 變更

  • peek() API 新增至 AsyncPagingDataDifferPagingDataAdapter,如此無需載入觸發條件頁面就能顯示呈現的資料。(I38898b/159104197)
  • 已將 snapshot() API 新增至 PagingDataAdapterAsyncPagingDataDiffer,以便在不觸發網頁擷取的情況下擷取簡報項目。(I566b6b/159104197)
  • 已新增可用於顯示靜態清單的 PagingData.from(List<T>) 建構函式,這個建構函式可與 PagingData 整體流程搭配使用,以在特定狀態中顯示靜態清單,例如在初始 REFRESH 完成之前或單純用於測試轉換。(Id134d)
  • 淘汰 dataRefresh Flow/Listener API,因為這是為了公開 REFRESH 中呈現的項目狀態,但是改善 loadState Flow/Listener 回呼時間和 itemCount 屬性後就不再需要 (Ia19f3)
  • 已為 PagingSourceRemoteMediator 新增 RxJava3 相容性包裝函式 (I49ef3b/161480176)

修正錯誤

  • PositionalDataSource 已透過 toPagingSourceFactory 輔助功能轉換為 PagingSource (包括 Room 產生的 PagingSource),現在可以正確標示以支援跳轉。(I3e84cb/162161201)
  • 已修正提交 API 的同步變化版本有時會導致競爭,造成 ClosedSendChannelException 的錯誤 (I4d702b/160192222)

外部貢獻

  • 感謝 Zac Sweers 為 Slack 新增 RxJava3 相容性包裝函式!(I49ef3b/161480176)

3.0.0-alpha03 版本

2020 年 7 月 22 日

androidx.paging:paging-*:3.0.0-alpha03 發布。3.0.0-alpha03 版本包含這些修訂版本。

API 變更

  • PagingState 的建構函式現已設為公開,因此可輕鬆測試 getRefreshKey() 的實作 (I8bf15)
  • 已隱藏 Java 的 DataSource kotlin 對應函式變化版本,以解決原始和 Kotlin 版本之間模糊不清的問題。(If7b23b/161150011)
  • 為方便 Kotlin 使用者使用的備援 API 已標示為 @JvmSynthetic (I56ae5)
  • 針對 LoadResult.Page 的建構函式新增超載值,該建構函式會將 itemCOUNT 和 itemsAfter 預設為 COUNT_UNDEFINED (I47849)
  • 使現有的 PagingData 運算子接受暫停方法,並為 Java 使用者導入新的 mapSync、FlatMapSync 和 filterSync 非暫停運算子。現有的轉換方法已移至擴充功能函式,因此 Kotlin 使用者現在需要匯入這些函式。(I34239b/159983232)

修正錯誤

  • Room (和 PositionalDataSource) PagingSources 現在會在第一頁顯示前置分隔符,因此使用者不需捲動網頁即可查看完整內容。(I6f747b/160257628)
  • 系統現可透過預留位置存取項目,並正確觸發 PagingSource 載入,直到網頁在透過 PagingData.filter() 轉換之後 (I95625b/158763195)
  • 修正 PagingSource 捲動後有時會傳回錯誤的錯誤,避免 PagingData 轉接程式.retry() 重試的問題。(I1084fb/160194384)
  • 修正放置網頁後,雖然項目存取是在 prefetchDistance 之內,仍可能無法載入頁面的問題 (Ie95aeb/160038730)
  • 設定 PagingConfig.maxSize 無法在於放置事件後啟用預留位置 (I2be29b/159667766)

3.0.0-alpha02 版本

2020 年 6 月 24 日

androidx.paging:paging-*:3.0.0-alpha02 發布。3.0.0-alpha02 版本包含這些修訂版本。

API 變更

  • 針對含有常見預設值的 PagingConfig 建構函式新增超載 (I39c50b/158576040)
  • 針對含有常見預設值的 PagingDataAdapterAsyncPagingDataDiffer 建構函式新增超載 (Ie91f5)
  • 轉接程式 API (dataRefreshFlowdataRefreshListener) 現在會傳送布林值來指出 PagingData 是否為空 (I6e37eb/159054196)
  • 針對 RemoteMediator 新增 RxJava 和 Guava API - RxRemoteMediatorListenableFutureRemoteMediator
  • 在 PagingState 中針對常見項目存取加入輔助程式,例如 isEmpty()firstItemOrNull() (I3b5b6b/158892717)

修正錯誤

  • 呼叫器現在會檢查處理戰中的 PagingSource 重複使用,以避免意外重複使用無效的 PagingSource,導致發生不明錯誤 (I99809b/158486430)
  • RemoteRemotetor REFRESH 的失敗不會再阻止 PagingSource 載入 (I38b1bb/158892717)
  • 非處於暫停狀態的 submitData 版本不會再於呼叫暫停版本的 submitData 後,因在多個 PagingData 上的並行收集而導致停止運作。(I26358b/158048877)
  • 已修正在設定變更後可能發生的「無法透過呼叫器收集兩次」例外狀況 (I58bccb/158784811)

3.0.0-alpha01 版本

2020 年 6 月 10 日

androidx.paging:paging-*:3.0.0-alpha01 發布。3.0.0-alpha01 版本包含這些修訂版本。

Paging Library 已更新為 3.0,以啟用多項主要新功能。

3.0 的新功能

已知問題

  • Paging 3 javadocs 尚未提供。在這段期間,請使用上方連結的指南或 Kotlin 文件。(b/158614050)

2.1.2 版本

2.1.2 版本

2020 年 3 月 18 日

androidx.paging:paging:2.1.2 發布。2.1.2 版本包含第 2.1.0 版的修訂版本

修正錯誤

  • 修正在極少數情況下,無效時轉換定位發生的 IndexOutOfBoundsException 問題。

版本問題

  • Paging 版本 2.1.1 的發布設定不正確,無法公開發布分支的某些 API 和功能。

  • Paging 2.1.2 包含最初在 2.1.1 中發布的負載修正工具,但這一次是在 2.1.0 版本中正確選取。如果目前使用 2.1.1,強烈建議升級至這個版本。

2.1.1 版本

2.1.1 版本

2019 年 12 月 18 日

androidx.paging:paging-*:2.1.1 發布。2.1.1 版本包含這些修訂版本

修正錯誤

  • 停用預留位置時,PositionalDataSources 的連續初始載入會以最後存取權為中心

2.1.0 版本

2.1.0 版本

2019 年 1 月 25 日

Paging 2.1.0 發布,且自 2.1.0-rc01 版以來皆無異動。

2.1.0-rc01 版本

2018 年 12 月 6 日

Paging 2.1.0-rc01 發布,且自 2.1.0-beta01 版以來皆無異動。

2.1.0-beta01 版本

2018 年 11 月 1 日

Paging 2.1.0-beta01 發布,且自 2.1.0-alpha01 版以來皆無異動。

2.1.0-alpha01 版本

2018 年 10 月 12 日

Paging 2.1.0-alpha01 有兩大新增項目,分別為網頁捨棄功能以及每個構件的 KTX 擴充功能程式庫,另外還有幾項 API 變更和錯誤修正項目。

API 變更

  • 新增了 PagedList.Config.Builder.setMaxSize(),用於限制記憶體中的已載入項目數量。
  • 新增了 androidx.paging.Config(),做為 PagedList.Config.Builder 的 Kotlin 替代方案。
  • 新增了 androidx.paging.PagedList(),做為 PagedList.Builder 的 Kotlin 替代方案。
  • 新增了 DataSourceFactory.toLiveData(),做為 LivePagedListBuilder 的 Kotlin 替代方案。
  • 新增了 DataSourceFactory.toObservable()toFlowable(),做為 RxPagedListBuilder 的 Kotlin 替代方案。
  • 新增了 AsyncPagedListDiffer.addPagedListListener(),用於監聽 PagedList 遭到更換的情況。b/111698609
  • 新增了可傳遞新舊清單的 PagedListAdapter.onCurrentListChanged() 變體,淘汰了先前的變體。
  • 新增了 PagedListAdapter/AsyncPagedListDiffer.submitList() 變體,該變體可接受另一個在差異比較完成後,因顯示 PagedList 而觸發的回呼。這樣一來,您就可以將 PagedList 更換活動與其他 UI 更新項目同步處理。b/73781068
  • 新增了 PagedList.getLoadedCount(),用於指出記憶體中的項目數量。請注意,如果停用了預留位置,傳回的值一律會等於 .size()

修正錯誤

  • 修正了當清單重複使用時,差異比較作業中發生的競爭狀況。b/111591017
  • 現在如果索引無效,PagedList.loadAround() 會擲回 IndexOutOfBoundsException。先前,這可能會異常終止並擲回其他不明確的例外狀況。
  • 修正了在初始載入大小極小且資料維持不變的情況下會導致無法繼續載入的問題。b/113122599

2.0.0 版本

2.0.0 版本

2018 年 10 月 1 日

Paging 2.0.0 發布,修正一項錯誤。

修正錯誤

  • 修正了使用 PositionalDataSource 和預留位置進行極快速捲動時可能發生的異常終止問題 b/114635383

2.0.0-beta01 版本

2018 年 7 月 2 日

修正錯誤

  • 修正了內容在某些前附情況下 (預留位置已停用,PositionalDataSource) 會消失的問題 b/80149146
  • (已在 1.0.1 中發布) 修正了 PagedListAdapterAsyncPagedListDiffer 無法發出移動事件信號的異常終止問題 b/110711937

Pre-AndroidX 依附元件

針對 AndroidX 之前的 Paging 版本 (如下所示),請加入下列依附元件:

dependencies {
    def paging_version = "1.0.0"

    implementation "android.arch.paging:runtime:$paging_version"

    // alternatively - without Android dependencies for testing
    testImplementation "android.arch.paging:common:$paging_version"

    // optional - RxJava support
    implementation "android.arch.paging:rxjava2:$paging_version"
}

1.0.1 版本

1.0.1 版本

2018 年 6 月 26 日

Paging 1.0.1 發布,修正 runtime 中的一項錯誤。我們強烈建議您使用 1.0.1 以確保穩定性。Paging RxJava2 1.0.1 也同時推出,與 1.0.0-rc1 完全相同。

修正錯誤

  • 修正了 PagedListAdapterAsyncPagedListDiffer 無法發出移動事件信號的異常終止問題。b/110711937

RxJava2 1.0.0 版本

RxJava2 1.0.0-rc1 版本

2018 年 5 月 16 日

Paging RxJava2 1.0.0-rc1 將移至候選版,且自初始的 Alpha 版以來皆無異動。

1.0.0 版本

1.0.0-rc1 版本

2018 年 4 月 19 日 Pagig 推出候選版

我們在 Paging 1.0.0 版本中沒有加入任何其他已知問題修正項目或新增功能。請將專案升級並改用 1.0.0-rc1,協助我們對這個版本進行實戰測試,進而推出穩定可靠的 1.0.0

這個版本並無任何異動,與 1.0.0-beta1 相同。

1.0.0-beta1 版本

2018 年 4 月 5 日

Paging 會先在 Beta 階段進行短時間的測試,再推出候選版。我們不打算對 Paging 1.0 做出進一步的 API 變更,而且想要做出任何 API 變更,門檻都非常高。

Alpha RxJava2 的 Paging 支援功能將以個別選用模組 (android.arch.paging:rxjava2:1.0.0-alpha1) 形式發布,在穩定之前暫時會分開建立版本。

這個新程式庫提供了 LivePagedListBuilder 的 RxJava2 替代選項,能夠建構 ObservableFlowable,接受使用 Scheduler 取代 Executor

Kotlin

val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50)
        .setFetchScheduler(myNetworkScheduler)
        .buildObservable()

Java

Observable<PagedList<Item>> pagedItems =
        RxPagedListBuilder(myDataSource, /* page size */ 50)
                .setFetchScheduler(myNetworkScheduler)
                .buildObservable();

新功能

  • 透過新的 android.arch.paging:rxjava2 構件新增了 RxPagedListBuilder

API 變更

  • 變更了 API,以釐清執行工具在建構工具中的角色:

    • setBackgroundThreadExecutor() 已重新命名為 setFetchExecutor() (在 PagedList.BuilderLivePagedListBuilder 中)

    • setMainThreadExecutor() 已重新命名為 setNotifyExecutor() (在 PagedList.Builder 中)。

  • PagedList.mCallbacks 成員的狀態修正為不公開。

修正錯誤

  • LivePagedListBuilder 會在指定執行工具 (而非 Arch 元件 IO 執行緒集區) 中觸發初始 PagedList 載入。

  • 修正了內部 DataSource 包裝函式中的失效行為,這類包裝函式是用於導入 DataSource.map 及停用預留位置的 PositionalDataSource 載入功能 b/77237534

1.0.0-alpha7 版本

2018 年 3 月 21 日

Paging 1.0.0-alpha7 連同 Lifecycles 1.1.1 一起發布。由於 Paging alpha7 仰賴上方提及的 Function 類別移動,您必須將 lifecycle:runtime 依附元件更新為 android.arch.lifecycle:runtime:1.1.1

Paging alpha7 預計將是 Paging 進入 Beta 階段前的最後一個發布版本。

API 變更

  • DataSource.LoadParams 物件現在具備公用建構函式,而 DataSource.LoadCallback 物件現在屬於抽象物件。 這樣一來,就能包裝 DataSource 或直接使用模擬回呼測試 DataSourceb/72600421
  • 提供 DataSource 和 DataSource.Factory 的對應工具。
    • map(Function<IN,OUT>) 可讓您轉換、包裝或修飾 DataSource 所載入的結果。
    • mapByPage(<List<IN>,List<OUT>>) 可讓您批次處理載入項目 (例如,如果從 SQL 載入的項目需要另外查詢獨立的資料庫,可採批次處理方式完成)。
  • 新增了 PagedList#getDataSource() 做為便利方法。b/72611341
  • 從 API 中移除了所有已淘汰的類別,包括 recyclerview.extensions 套件的其餘部分和 LivePagedListProvider
  • DataSource.Factory 從介面變更為抽象類別,以啟用對應功能。

修正錯誤

  • 將建構工具變更為最終版。b/70848565
  • Room DataSource 實作現在經過修正,可處理多資料表查詢;這項修正包含在 Room 1.1.0-beta1 中 (請見上文)。
  • 修正了在啟用預留位置且總大小為網頁大小的整數倍數時,無法為 PositionalDataSource 叫用 BoundaryCallback.onItemAtEndLoaded 的錯誤。

1.0.0-alpha5 版本

2018 年 1 月 22 日

修正錯誤

  • 修正停用預留位置後的網頁載入問題 b/70573345
  • 提供額外記錄,以利追蹤 IllegalArgumentException 錯誤 b/70360195 (以及推測性 Room 修正項目)
  • Javadoc 程式碼範例修正項目 b/70411933b/71467637