Recyclerview
這個表格列出 androidx.recyclerview
群組中的所有構件。
構件 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
recyclerview | 1.4.0 | - | - | - |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
宣告依附元件
如果要為「RecyclerView」新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
Groovy
dependencies { implementation "androidx.recyclerview:recyclerview:1.3.2" // For control over item selection of both touch and mouse driven selection implementation "androidx.recyclerview:recyclerview-selection:1.1.0" }
Kotlin
dependencies { implementation("androidx.recyclerview:recyclerview:1.3.2") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.1.0") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 文件。
1.4 版
1.4.0 版本
2025 年 1 月 15 日
發布 androidx.recyclerview:recyclerview:1.4.0
。1.4.0 版包含這些修訂版本。
自 RecyclerView 1.3.2 版以來的重要異動
Adaptive
刷新率支援:RecyclerView
現在會在透過OverScroller
捲動時 (例如從快速滑動或平滑捲動) 呼叫setFrameContentVelocity
。(I8f8a4)
1.4.0-rc01 版本
2024 年 9 月 18 日
發布 androidx.recyclerview:recyclerview:1.4.0-rc01
,且自 1.4.0-alpha02 版以來皆無異動。1.4.0-rc01 版包含這些修訂項目。
自 1.3.2 版以來的變更
相容性注意事項:這個版本只會針對 API 35 (Vanilla Ice Cream) SDK 以上版本編譯。如果在升級時看到 AGP (Android Gradle 外掛程式) 警告,您可以抑制警告。
新功能
Adaptive
刷新率支援:RecyclerView
現在會在透過OverScroller
捲動時 (例如從快速滑動或平滑捲動) 呼叫setFrameContentVelocity
。(I8f8a4)
API 變更
- 新增
RecyclerView$LayoutManager#isLayoutReversed
API。(I4970e)
其他變更
- 移除新平台 API 存取權的手動設定,因為在使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,以及在使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 的所有版本時,這項操作會透過 API 模擬功能自動執行。建議未使用 AGP 的用戶端更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(Ia60e0、b/345472586)。
- 將項目檢視類型新增至
RecyclerView
繫結/建立追蹤記錄區段,並將 RV 預先擷取標示為「強制 - 需要下一個影格」,如果預期下一個影格會使用這些預先擷取內容,則應盡快開始執行。(I8ec3e、b/309523615)。 - 將
compileSdk
更新為 35 (詳情請參閱上方的「相容性注意事項」)。5dc41be
1.4.0-beta01 版本
2024 年 8 月 21 日
發布 androidx.recyclerview:recyclerview:1.4.0-beta01
,且自 1.4.0-alpha02 版以來皆無異動。1.4.0-beta01 版包含這些修訂項目。
相容性注意事項:這個版本只會針對 API 35 (Vanilla Ice Cream) SDK 以上版本編譯。如果在升級時看到 AGP (Android Gradle 外掛程式) 警告,您可以抑制警告。
1.4.0-alpha02 版
2024 年 8 月 7 日
發布 androidx.recyclerview:recyclerview:1.4.0-alpha02
。1.4.0-alpha02 版包含這些修訂項目。
相容性注意事項:這個版本只會針對 API 35 (Vanilla Ice Cream) SDK 以上版本編譯。如果在升級時看到 AGP (Android Gradle 外掛程式) 警告,您可以抑制警告。
新功能
- 支援可變刷新率:RecyclerView 現在會在透過 OverScroller 捲動時 (例如從快速滑動或平滑捲動) 呼叫
setFrameContentVelocity
。(I8f8a4)
API 變更
- 已淘汰的
ViewCompat.LAYOUT_DIRECTION_
API (I51710、b/317055535) - 新增
RecyclerView$LayoutManager#isLayoutReversed
API。(I4970e)
其他變更
- 移除新平台 API 存取權的手動設定,因為在使用 AGP 7.3 以上版本 (例如 R8 3.3 版) 的 R8 時,以及在使用 AGP 8.1 以上版本 (例如 D8 8.1 版) 的所有版本時,這項操作會透過 API 模擬功能自動執行。建議未使用 AGP 的用戶端更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(Ia60e0、b/345472586)。
- 將項目檢視類型新增至
RecyclerView
繫結/建立追蹤記錄區段,並將 RV 預先擷取標示為「強制 - 需要下一個影格」,如果預期下一個影格會使用這些預先擷取內容,則應盡快開始執行。(I8ec3e、b/309523615)。 - 將
compileSdk
更新為 35 (詳情請參閱上方的「相容性注意事項」)。5dc41be
外部貢獻
GestureDetectorCompat
已淘汰,因為GestureDetector
可從minSdk
取得。(Icc4cd)。
1.4.0-alpha01 版
2023 年 10 月 18 日
發布 androidx.recyclerview:recyclerview:1.4.0-alpha01
。查看 1.4.0-alpha01 版的修訂項目。
API 變更
- 新增
RecyclerView$LayoutManager#isLayoutReversed
API。(I4970e)
修正錯誤
- 修正動畫期間偶爾會當機的錯誤 (I42f22b) (也包含在 1.3.2 中)
1.3.2 版
1.3.2 版
2023 年 10 月 18 日
發布 androidx.recyclerview:recyclerview:1.3.2
。1.3.2 版包含此連結所列的修訂項目。
修正錯誤
- 修正在動畫期間偶爾發生異常終止的錯誤。(I42f22b)
1.3.1 版本
1.3.1 版本
2023 年 7 月 26 日
androidx.recyclerview:recyclerview:1.3.1
已發布,且自 1.3.1-rc01 版以來皆無異動。查看 1.3.1 版的修訂項。
如要查看先前版本的版本資訊,請參閱版本資訊頁面
1.3.1-rc01 版本
2023 年 5 月 24 日
發布 androidx.recyclerview:recyclerview:1.3.1-rc01
。1.3.1-rc01 版本包含以下修訂項目。
ViewPager2 使用者必須更新至至少 1.1.0-beta02,才能更新至此版本的 RecyclerView
,以免發生當機。
API 變更
- 新增
setDebugAssertionsEnabled
和setVerboseLoggingEnabled
方法,協助偵錯應用程式中的RecyclerView
相關問題。(I514b9)
修正錯誤
- 在呼叫
onBind
時,暫時重新附加暫時分離的檢視畫面,藉此修正ViewTreeLifecycleOwner
(包括ComposeView
) 使用者的當機問題。(I7244f2c、b/265347515、b/283288295)。
1.3.0 版本
1.3.0 版本
2023 年 3 月 8 日
androidx.recyclerview:recyclerview:1.3.0
已發布,自 1.3.0-rc01 版以來皆無異動。1.3.0 版包含此連結所列的修訂項目。
自 1.2.0 版以來的重要異動
- 在本次發布版本中,改善了和 Jetpack Compose 一起使用時的效能 (之前含在 1.3.0-alpha02 和 1.3.0-beta01 中的內容)。如果您目前使用 Compose
1.2.0-beta02
以上版本,且曾按照之前的互通性指南說明使用MyComposeAdapter
及DisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
,則應該移除這些項目,因為這些項目不再能夠改善預設狀態。 - 新增
ConcatAdapter.getWrappedAdapterAndPosition
方法,以便在沒有ViewHolder
的情況下擷取已封裝的轉接程式資訊,例如SpanSizeLookup
(I2bd4c、b/191543920)
1.3.0-rc01 版本
2022 年 9 月 21 日
發布 androidx.recyclerview:recyclerview:1.3.0-rc01
。查看 1.3.0-rc01 版的修訂項。
- 自上次發布版本以來沒有任何變更
1.3.0-beta02 版
2022 年 8 月 10 日
發布 androidx.recyclerview:recyclerview:1.3.0-beta02
。查看 1.3.0-beta02 版的修訂項目。
API 變更
1.3.0-beta01 版本
2022 年 6 月 29 日
發布 androidx.recyclerview:recyclerview:1.3.0-beta01
。1.3.0-beta01 版包含以下修訂項目。
新功能
- 在本次 Beta 版中,改善了和 Jetpack Compose 一起使用時的效能 (之前含在 1.3.0-alpha02 中的內容)。如果您目前使用 Compose
1.2.0-beta02
以上版本,且曾按照之前的互通性指南說明使用MyComposeAdapter
及DisposeOnViewTreeLifecycleDestroyed
ViewCompositionStrategy
,則應該移除這些項目,因為這些項目不再能夠改善預設狀態。
API 變更
- 為幾個方法和參數新增是否可為空值的備註,以便為 Java 使用者提供更有幫助的 Lint 警示,並為 Kotlin 使用者提供更良好的互通性。對部分 Kotlin 來說,這次變更會破壞原始碼,並可能導致部分 Java 使用者發生額外的 Lint 警示/錯誤。(I61829、b/236487044;Ia0b6f;I6f119、b/236487209;Ibe1de、b/236487210)。
修正錯誤
- 設定 a11y 節點資訊類別名稱,確保 a11y 服務將格線視為格線處理 (I12812)。
1.3.0-alpha02 版本
2022 年 4 月 6 日
發布 androidx.recyclerview:recyclerview:1.3.0-alpha02
。查看 1.3.0-alpha02 版的修訂項。
API 變更
- 為日後的 SDK 新增實驗性
BuildCompat
方法 (Iafd82、b/207528937) - 新增
ConcatAdapter.getWrappedAdapterAndPosition
方法,以便在沒有 ViewHolder 的情況下擷取已封裝的轉接程式資訊,例如SpanSizeLookup
(I2bd4c、b/191543920)
修正錯誤
1.3.0-alpha01 版本
2021 年 9 月 15 日
androidx.recyclerview:recyclerview:1.3.0-alpha01
發布。1.3.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 新增延展過度捲動 RescrView。(Iab877)
RecyclerView-Selection 1.2.0 版本
1.2.0-alpha01 版本
2021 年 5 月 5 日
androidx.recyclerview:recyclerview-selection:1.2.0-alpha01
發布。1.2.0-alpha01 版包含以下修訂項目。
修正錯誤
- 修正 KeyProvider 中的金鑰/對應位置在項目未回收時發生的問題。(b/145767095)
1.2.1 版本
1.2.1 版本
2021 年 6 月 2 日
androidx.recyclerview:recyclerview:1.2.1
發布。查看 1.2.1 版的修訂項目。
修正錯誤
- 現在
ConcatAdapter
內的ViewHolder
在onViewRecycled
回呼中查詢時,會傳回正確的轉接程式位置 (b/187339376)
1.2.0 版本
1.2.0 版本
2021 年 4 月 7 日
androidx.recyclerview:recyclerview:1.2.0
發布。1.2.0 版包含此連結所列的修訂項目。
自 1.1.0 版本以來的重大異動
ConcatAdapter:此新版轉接程式可讓您輕鬆地在相同的 RecyclerView 中串連多個轉接程式。詳情請參閱網誌文章。
- 在本次異動中,
ViewHolder.getAdapterPosition
已淘汰並以兩種新方法取代:- getBindingAdapterPosition 會傳回繫結該項目的轉接程式相對位置。
- getAbsoluteAdapterPosition 會傳回整個 RecyclerView 的相對位置。
延遲狀態還原:RecyclerView 轉接程式現在可以延遲載入內容,直到內容載入完成。詳情請參閱說明文件。
1.2.0-rc01 版本
2021 年 3 月 24 日
androidx.recyclerview:recyclerview:1.2.0-rc01
發布。查看 1.2.0-rc01 版的修訂項目。
修正錯誤
ConcatAdapter.Config.Builder
現在有符合Config.DEFAULT
的預設值 (b/157169835)
1.2.0-beta02 版
2021 年 2 月 24 日
androidx.recyclerview:recyclerview:1.2.0-beta02
發布。1.2.0-beta02 版本包含這些修訂版本。
修正錯誤
- 修正以下問題:頂部邊框間距造成右側過度捲動光暈往上移動至設有邊框間距的區域,而非依循邊框間距往下移動 (I6b61d、b/118399122)
1.2.0-beta01 版本
2020 年 12 月 2 日
androidx.recyclerview:recyclerview:1.2.0-beta01
自 1.2.0-alpha06
起沒有變更。1.2.0-beta01 版本包含這些修訂版本。
1.2.0-alpha06 版本
2020 年 10 月 1 日
androidx.recyclerview:recyclerview:1.2.0-alpha06
發布。1.2.0-alpha06 版本包含這些修訂版本。
新功能
- 新增增加多個 RecyclerListeners 的支援。(I70ad8、b/145767095)
API 變更
- 已淘汰 RecyclerView.setRecyclerListener(RecyclerListener)。(I70ad8、b/145767095)
1.2.0-alpha05 版本
2020 年 7 月 22 日
androidx.recyclerview:recyclerview:1.2.0-alpha05
發布。查看 1.2.0-alpha05 版的修訂項。
修正錯誤
- 修正以下問題:如果 RecyclerView 只有一個項目且為焦點,則無法將焦點向前或向後移動 (6f36b3)
- 修正
StaggeredGridLayoutManager
中的ArrayIndexOutOfBoundsException
(49b601、b/122303625、b/74877618、b/160193663、b/37086625) - 修正測量錯誤:在特定情況下,RecyclerView 會以錯誤的方式阻止顯示其子項 (89040c、b/138734786)。
外部貢獻
- 感謝 Kolin Krewinkel 代表 Facebook 所做的貢獻!
1.2.0-alpha04 版本
2020 年 6 月 24 日
androidx.recyclerview:recyclerview:1.2.0-alpha04
發布。查看 1.2.0-alpha04 版的修訂項。
API 變更
MergeAdapter
已重新命名為ConcatAdapter
,以避免與不同資料合併行為混淆 (c0540c、b/158019211)。
修正錯誤
- 改善所有顯示項目移除時的自動捲動功能 (fe8670、b/154124815)
1.2.0-alpha03 版本
2020 年 4 月 29 日
androidx.recyclerview:recyclerview:1.2.0-alpha03
發布。查看 1.2.0-alpha03 版的修訂項。
新功能
- RecyclerView 現在有
nestedScrollBy
方法,可允許使用搭配建立巢狀結構捲動使用的程式輔助捲動 (Ibaa58)
1.2.0-alpha02 版本
2020 年 4 月 1 日
androidx.recyclerview:recyclerview:1.2.0-alpha02
發布。1.2.0-alpha02 版本包含這些修訂版本。
此版本和較新版本的 RecyclerView 與較舊版本的 ViewPager2 不相容。如果您目前使用的是 androidx.viewpager2:viewpager2:1.0.0
以下版本,請務必更新為 androidx.viewpager2:viewpager2:1.1.0-alpha01
。
新功能
MergeAdapter
- MergeAdapter:新版 RecyclerView 轉接程式,可將多個轉接程式以線性方式組合。
MyAdapter adapter1 = ...; AnotherAdapter adapter2 = ...; MergeAdapter merged = new MergeAdapter(adapter1, adapter2); recyclerView.setAdapter(mergedAdapter);
在上方的範例中,MergeAdapter 會顯示
adapter1
中的項目,然後是adapter2
。RecyclerView.Adapter
延遲狀態復原:在
RecyclerView.Adapter
類別中加入新的 API,讓轉接程式可以控制還原版面配置狀態的時間。舉例來說,您可以呼叫:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
使 RecyclerView 等候,直到轉接程式在還原捲動位置前不再為空白。
根據預設,CollectionInfo 和 CollectionItemInfo 不會再填入。
如要讓無障礙服務 (例如 Talkback) 繼續向使用者顯示數量和項目索引,您必須自行填入 CollectionInfo 和 CollectionItemInfo。
系統不會再在架構中將填入這些物件,原因是架構無法判斷使用者感知到的項目數量 (例如分隔符、標頭或代表多個感知項目的 RecyclerView 項目)。
修正錯誤
- RecyclerView 現在不會在可視區域大小變更時錨定在檢視畫面以外的區域
- 修正 DiffUtil 中的錯誤:如果在第二個清單中多次複製第一個清單中的原始項目,則計算差異時可能會出錯。(b/123376278)
1.2.0-alpha01 版本
2019 年 12 月 18 日
發布了 androidx.recyclerview:recyclerview:1.2.0-alpha01
。1.2.0-alpha01 版本包含這些修訂版本。
修正錯誤
- 修正 FastScroller 與 RTL 繪圖和觸控準確度相關的小問題 (b/143789932、aosp/1130438)
- 修正 ItemTouchHelper 動畫執行時,從 RecyclerView 移除動畫會導致 ItemTouchHelper 停止運作的問題 (b/140447176、aosp/1167575)
1.1.0 版本
1.1.0 版本
2019 年 11 月 20 日
androidx.recyclerview:recyclerview:1.1.0
發布。1.1.0 版包含此連結所列的修訂項目。
自 1.0.0 版以來的重要異動
- 不論
clipToPadding
值為何,PagerSnapHelper
和LinearSnapHelper
現在都會將 RecyclerView 的邊框間距納入考量 (b/139452422、b/139012032、aosp/1103182、aosp/1106715、aosp/1130728) RecyclerView.setLayoutTransition(LayoutTransition)
已正式淘汰,因此在使用非空值呼叫時將擲回IllegalArgumentException
。改用RecyclerView.setItemAnimator(ItemAnimator)
。(aosp/839414)- aosp/723649:RecyclerView 現在會實作
NestedScrollingChild3
,以便收到所有巢狀捲動父項已停止消耗巢狀捲動距離的通知。如果開發人員程式碼目前覆寫RecyclerView.onNestedScroll(View, int, int, int, int, int)
,則可能不會再呼叫,並且應改為覆寫RecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
。 - RecyclerView 現有預設樣式屬性:
recyclerViewStyle
,這可讓您設定主題的預設樣式 - ViewCompat 無障礙動作 API 不會再中斷 RecyclerView ItemDelegate。
- 可覆寫
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
以自訂要在關聯 RecyclerView 兩側加入多少版面配置空間。(aosp/931259) - 新增 smoothScrollBy 的超載
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
,讓您能以毫秒為單位指定動畫所需的播放時間 (aosp/952807)
1.1.0-rc01 版本
2019 年 10 月 23 日
androidx.recyclerview:recyclerview:1.1.0-rc01
發布。1.1.0-rc01 版包含這些修訂版本。
修正錯誤
- 修正覆寫
RecyclerViewAccessibilityDelegate.ItemDelegate
時的「應用程式無回應」問題 (aosp/1138057、aosp/1133434)
1.1.0-beta05 版本
2019 年 10 月 9 日
androidx.recyclerview:recyclerview:1.1.0-beta05
發布。1.1.0-beta05 版本包含這些修訂版本。
API 異動
- 以下是 aosp/1106715 和 aosp/1103182 的後續處理結果:現在 LinearSnapHelper 和 PagerSnapHelper 會傳回位於 RecyclerView 繫結中心範圍的檢視畫面 (減去邊框間距),不受 clipToPadding 的值影響 (aosp/1130728)。
修正錯誤
- 修正 RecyclerView 為 RecyclerView 子項產生重複無障礙功能節點的問題 (aosp/1130618)
- 修正在 RecyclerViews 中,虛擬無障礙功能階層無法使用的問題。
- 修正以下問題:不使用自訂的 ItemDelegates。
1.1.0-beta04 版本
2019 年 9 月 5 日
發布了 androidx.recyclerview:recyclerview:1.1.0-beta04
。您可以前往這裡查看這個版本包含的修訂項目。
修正錯誤
- 不論
clipToPadding
值為何,PagerSnapHelper
和LinearSnapHelper
現在都會將 RecyclerView 的邊框間距納入考量 (b/139452422、b/139012032、aosp/1103182、aosp/1106715) - 修正 RecyclerView 在巢狀預先捲動作業導致
NestedScrollingParent
捲動時,允許進行觸控攔截的錯誤 (b/138668210、aosp/1105373),這對 ViewPager2 等程式庫有益。 - 現在,在傳送巢狀預先捲動前,RecyclerView 一律會使用
SCROLL_STATE_DRAGGING
(aosp/1105373) - 在手勢超出滑動距離前,系統將不會再執行巢狀預先捲動作業 (b/139530818、aosp/1105373)
- 當 RecyclerView 無法朝指定方向捲動時,分派給巢狀預先捲動作業的
dx
和dy
引數會歸零 (aosp/1105373)
1.1.0-beta03 版本
2019 年 8 月 15 日
發布 androidx.recyclerview:recyclerview:1.1.0-beta03
。您可以前往這裡查看這個版本包含的修訂項目。
API 異動
- RecyclerView 現在會透過
View.onScrollChanged(int l, int t, int oldl, int oldt)
傳送捲動距離,讓無障礙服務能準確反映捲動變更 (aosp/1007823)
修正錯誤
- 修正與 RecyclerView 和無障礙功能相關的重大錯誤堆疊溢位錯誤。(aosp/1099577)
1.1.0-beta02 版本
2019 年 8 月 7 日
發布 androidx.recyclerview:recyclerview:1.1.0-beta02
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
- RecyclerView 現有預設樣式屬性:
recyclerViewStyle
,這可讓您設定主題的預設樣式
修正錯誤
- 修正在捲動 RecyclerView 導致 NestedScrollingParent 捲動時,RecyclerView 沒有禁用觸控攔截的錯誤。(b/131115697、aosp/1055911)
1.1.0-beta01 版本
2019 年 7 月 2 日
發布 androidx.recyclerview:recyclerview:1.1.0-beta01
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
RecyclerView
現在會於捲動透過無障礙事件啟動時參與巢狀捲動。(aosp/973584)
1.1.0-alpha06 版本
2019 年 6 月 5 日
發布 androidx.recyclerview:recyclerview:1.1.0-alpha06
和 androidx.recyclerview:recyclerview-selection:1.1.0-alpha06
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
- 新增 smoothScrollBy 的超載
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration)
,讓您能以毫秒為單位指定動畫所需的播放時間 (aosp/952807)
API 異動
GridLayoutManager
和StaggeredGridLayoutManager
不再出於無障礙目的,自動將完整時距項目標記為標題 (aosp/969703)- 保留
recyclerview-selection
中所選項目的順序 (依建立時間) (aosp/937279)
修正錯誤
- 修正
RecyclerView
在巢狀捲動情況中以錯誤的速率快速滑過的問題 (aosp/961642) - 新增
recyclerview-selection
的穩定性改善項目 (aosp/960213、aosp/926296)
1.1.0-alpha05 版本
2019 年 5 月 7 日
發布 androidx.recyclerview:recyclerview:1.1.0-alpha05
和 androidx.recyclerview:recyclerview-selection:1.1.0-alpha05
。您可以前往這裡查看這個版本包含的修訂項目。
新功能
- 您可以覆寫
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[])
,藉此自訂要在相關聯的 RecyclerView 兩側加入多少額外版面配置空間 (aosp/931259)
API 異動
- 新增 API 以擷取
DividerItemDecoration
可繪項目 (aosp/937282) - 淘汰
LinearLayout.getExtraLayoutSpace(RecyclerVew.State)
,改用允許在兩側加入自訂額外版面配置空間的新機制。新方法為LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[])
(aosp/931259)
修正錯誤
- 已清除手勢選擇 (aosp/940781)
- 保留所選項目的建立順序 (依建立時間) (b/128455535)
1.1.0-alpha04 版本
2019 年 4 月 3 日
androidx.recyclerview:recyclerview:1.1.0-alpha04
發布。您可以前往這裡查看這個版本包含的修訂項目。
修正錯誤
- RV OnItemTouchListener 先前無法攔截 ACTION_UP,導致 OnItemTouchListener 無法阻止其他程式碼回應 ACTION_UP。這個問題現已修正:(aosp/916137)
1.1.0-alpha03 版本
2019 年 3 月 13 日
androidx.recyclerview:recyclerview:1.1.0-alpha03
發布。您可以前往這裡查看這個版本包含的修訂項目完整清單。
新功能
GridLayoutManager
:選擇加入,較高解析度GridLayoutManager
捲軸尺寸估算 (aosp/838836):- 使用時距資訊預估
GridLayoutManager
的捲軸尺寸。 - 如要啟用,請將呼叫
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
以傳遞設為 True。 - 詳情請參閱
GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean)
的說明文件。
- 使用時距資訊預估
修正錯誤
- 無障礙功能:ViewHolder 被再利用並重新繫結後,與 RecyclerView 的
RecyclerViewAccessibilityDelegate
相關聯的 ItemDelegate 無法與 ViewHolder 的 itemView 建立關聯,導致無障礙功能無法正常運作。這個問題現已修正 (aosp/917740)。
1.1.0-alpha02 版本
2019 年 1 月 30 日
發布了 androidx.recyclerview:recyclerview 1.1.0-alpha02
。
API 異動
- 淘汰
RecyclerView.setLayoutFrozen(boolean)
和RecyclerView.isLayoutFrozen()
,改用RecyclerView.suppressLayout(boolean)
和RecyclerView.isLayoutSuppressed()
(aosp/839414) RecyclerView.setLayoutTransition(LayoutTransition)
已正式淘汰,因此在使用非空值呼叫時將擲回IllegalArgumentException
。(aosp/839414)
修正錯誤
- 修正 RV 中
SmoothScroller
無法結束的錯誤 (aosp/843741) - 修正在捲動動畫結束時可能不會呼叫
SCROLL_STATE_IDLE
的錯誤 (aosp/812576)
1.1.0-alpha01 版本
2018 年 12 月 3 日
發布 androidx.recyclerview 1.1.0-alpha01
和 androidx.recyclerview-selection 1.1.0-alpha01
。
androidx.recyclerview 1.1.0-alpha01
API 異動
- aosp/723649:RecyclerView 現在會實作
NestedScrollingChild3
,以便收到所有巢狀捲動父項已停止消耗巢狀捲動距離的通知。如果開發人員程式碼目前覆寫RecyclerView.onNestedScroll(View, int, int, int, int, int)
,則可能不會再呼叫,並且應改為覆寫RecyclerView.onNestedScroll(View, int, int, int, int, int, int[])
。
修正錯誤
- 修正使用
TransitionManager
收合/展開RecyclerView
中的項目時會當機的問題 (b/37129527)。 - 修正
RecyclerView.OnItemTouchListener
的行為與 View 系統的onInterceptTouchEvent
和onTouchEvent
行為不一致的錯誤 (aosp/721235) - 修正幾項與順暢捲動相關的極端案件錯誤 (aosp/729718、aosp/747168、aosp/812576)
- 修正
PagerSnapHelper
中的貼齊策略,以便處理非典型的子項檢視畫面 (aosp/795752)
androidx.recyclerview-selection 1.1.0-alpha01
修正錯誤
- 修正在移除所選項目時變更資料集
ConcurrentModificationException
的問題。
RecyclerView-Selection 1.1.0 版
RecyclerView-Selection 1.1.0 版
2021 年 1 月 27 日
發布 androidx.recyclerview:recyclerview-selection:1.1.0
。1.1.0 版本包含以下修訂項目。
自 1.0.0 版起的重大異動
- 多項穩定性的改善。
SelectionTracker.Builder
的withGestureTooltypes
和withPointerTooltypes
方法已淘汰。這些方法將在日後推出的版本中移除。
RecyclerView-Selection 1.1.0-rc03 版本
2020 年 10 月 1 日
androidx.recyclerview:recyclerview-selection:1.1.0-rc03
發布。1.1.0-rc03 版包含此連結所列的修訂項目。
修正錯誤
感謝 Stefan Kiesler 進行測試修正並提供意見。
- 修正以下問題:在主動選取項目的情況下,系統會意外呼叫子項檢視畫面 OnClickListener。
- 滑鼠處理常式 (頻段選擇) > 妥善處理非預期的捲動動作 (b/167821507)
RecyclerView-Selection 1.1.0-rc02 版本
2020 年 9 月 2 日
androidx.recyclerview:recyclerview-selection:1.1.0-rc02
發布。1.1.0-rc02 版包含這些修訂版本。
裝置重要活動
- 解決 1.0 中輸入裝置處理的多次迴歸問題。
- 為
onRequestDisallowInterceptTouchEvent
更新程式庫,允許與 TouchTouchHelper 搭配使用 (只要滑開即可)。
修正錯誤
- 修正以下問題:所選程式庫對
GestureDetector
事件的解讀有誤,導致無法在選取過程中偵測到輕觸動作 (b/165030422) - 修正問題:系統不會更新所選項目,因此無法反映從轉接程式中移除的項目 (b/138932671)
- 修正以下問題:RecyclerView 項目會在 SelectionTracker 有效選取項目時觸發 onClick 事件 (b/161162268)
- 現可正確處理
onRequestDisallowInterceptTouchEvent
- 修正以下問題:在 Q 捲動滑鼠時顯示
”Cannot call this method in a scroll callback”
- 更新文件 (特別是在
StableIdKeyProvider
中),以便清楚指出 RecyclerView 執行個體的需求
Recyclerview-Selection 1.1.0-rc01 版本
2020 年 2 月 5 日
androidx.recyclerview:recyclerview-selection:1.1.0-rc01
發布。1.1.0-rc01 版包含這些修訂版本。
修正錯誤
- 修正以下問題:RecyclerView 在與可捲動的 AppBarLayout 互動時,難以使用手勢選取項目進行捲動 (aosp/1193934)
RecyclerView-Selection 1.1.0-beta01 版本
2019 年 12 月 4 日
androidx.recyclerview:recyclerview-selection:1.1.0-beta01
發布。1.1.0-beta01 版本包含這些修訂版本。
針對內部狀態的防禦檢查和管理相關的穩定性做出整體改善。
修正錯誤
- 改善程式庫狀態的管理和解讀 CANCEL 事件的方式,進而提高穩定性。
API 異動
- 為類別和方法新增缺少的選取索引鍵類型參數。
- 淘汰的方法:
- SelectionTracker.Builder#withPointerTooltype
- SelectionTracker.Builder#withGestureTooltype
- 這些方法必須在開發人員可能會將指標或手勢行為對應至預設類型以外的工具類型時才可使用*。這個目的很好,但使用者明確指出對於輸入行為的期望仍是特定工具類型。此外,就 Android 輸入系統而言,「被動」觸控筆即視為 FINGER 工具類型。
- 手勢的預設工具類型為 FINGER,指標則是 MOUSE。