RecyclerView
此表列出了 androidx.recyclerview
组中的所有工件。
工件 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
recyclerview | 1.3.2 | 1.4.0-rc01 | - | - |
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。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中 现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。
有关更多信息,请参阅 问题跟踪器文档。
版本 1.4
版本 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 插件)警告,您可以抑制它们。
新功能
- 可变刷新率支持:
RecyclerView
现在在通过OverScroller
滚动时(例如,从抛掷或平滑滚动中回弹)调用setFrameContentVelocity
。(I8f8a4)
API 更改
- 添加
RecyclerView$LayoutManager#isLayoutReversed
API。(I4970e)
其他更改
- 移除对新平台 API 访问的手动概述,因为在使用 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)时,以及在使用 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 访问的手动概述,因为在使用 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)时,以及在使用 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 包含这些提交。
更新到此版本的 RecyclerView
时,ViewPager2 用户必须更新到至少 1.1.0-beta02,以避免崩溃。
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 以来重要更改
- 此版本包含性能改进(之前包含在1.3.0-alpha02 和1.3.0-beta01 中),在与 Jetpack Compose 一起使用时。如果您使用的是 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 版本包含性能改进(之前包含在1.3.0-alpha02 中),在与 Jetpack Compose 一起使用时。如果您使用的是 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)
错误修复
- 通过设置辅助功能节点信息类名称,确保辅助功能服务将网格视为网格。(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 包含这些提交。
新功能
- 添加了对拉伸过度滚动 RecyclerView 的支持。(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 包含这些提交。
错误修复
ViewHolder
在ConcatAdapter
中现在在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)
外部贡献
- 感谢 Facebook 代表 Kolin Krewinkel 的 贡献!
版本 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 现在避免在视口大小发生变化时锚定视口外的 View
- 修复了 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 版本以来的重要更改
PagerSnapHelper
和LinearSnapHelper
现在考虑 RecyclerView 的填充,而不管clipToPadding
的值如何(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)
- 修复了 RecyclerView 中虚拟辅助功能层次结构无法工作的问题。
- 修复了自定义 ItemDelegate 未被使用的问题。
版本 1.1.0-beta04
2019 年 9 月 5 日
androidx.recyclerview:recyclerview:1.1.0-beta04
已发布。 此版本中包含的提交可以在这里找到 这里。
错误修复
PagerSnapHelper
和LinearSnapHelper
现在会考虑 RecyclerView 的填充,而不管clipToPadding
的值如何 (b/139452422,b/139012032,aosp/1103182,aosp/1106715)- 修复了一个错误,即当嵌套预滚动导致
NestedScrollingParent
滚动时,RecyclerView 不会禁止触摸拦截 (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 进行测试修复并提供反馈。
- 修复了在活动选择期间子视图 OnClickListeners 意外调用的问题。
- 鼠标处理程序(带状选择)> 以优雅的方式处理意外滚动。(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
,使其能够与 ItemTouchHelper 良好配合(只需将其滑动即可!)。
错误修复
- 修复了选择库错误解释
GestureDetector
事件导致在活动选择期间丢失点击的问题(b/165030422) - 修复了选择未更新以反映从适配器中删除的项目的问题。(b/138932671)
- 修复了当 SelectionTracker 具有活动选择时 RecyclerView 项目会触发 onClick 事件的问题(b/161162268)
- 现在可以正确处理
onRequestDisallowInterceptTouchEvent
- 修复了在 Q 上鼠标滚动期间出现的
”在滚动回调中无法调用此方法”
问题 - 更新了文档(尤其是在
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。