Recyclerview
這個表格列出 androidx.recyclerview
群組中的所有構件。
構件 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
recyclerview | 1.3.2 | - | 1.4.0-beta01 | - |
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-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)。
其他變更
- 由於使用 R8 搭配 AGP 7.3 以上版本 (例如 R8 3.3) 時,以及所有使用 AGP 8.1 以上版本 (例如 D8 8.1) 的建構作業,這項作業會自動透過 API 模型建立,因此我們不再手動列出新平台 API 的存取權。針對非使用 AGP 的用戶端,建議更新至 D8 8.1 以上版本。詳情請參閱這篇文章。(Ia60e0、b/345472586)
- 將項目檢視類型新增至
RecyclerView
繫結/建立追蹤記錄區段,並將 RV 預先擷取標示為「forced - requirements next frame」表示下一個影格應有使用這類素材資源,因此應該會盡快開始放送。(I8ec3e、b/309523615) - 將
compileSdk
更新至 35 (詳情請參閱上方的「相容性注意事項」)。5dc41be
外部貢獻
- 由於
minSdk
提供GestureDetector
,因此GestureDetectorCompat
現已淘汰。(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 版包含以下修訂項目。
更新至這個版本的 RecyclerView
時,ViewPager2 使用者至少須更新至 1.1.0-beta02,以免當機。
API 變更
- 新增
setDebugAssertionsEnabled
和setVerboseLoggingEnabled
方法,以協助偵錯應用程式中的RecyclerView
相關問題。(I514b9)。
修正錯誤
- 修正
ViewTreeLifecycleOwner
使用者 (包括ComposeView
) 的當機問題,方法是在呼叫onBind
時暫時重新附加已卸離的檢視畫面。(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/1120728) 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 邊界中心減去邊框間距的檢視畫面 (無論 frameToPadding 的值)。(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
的行為與檢視系統的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 輸入系統而言,styli 是 FINGER 工具類型。
- 手勢的預設工具類型為 FINGER,指標則是 MOUSE。