RecyclerView

在 UI 中显示大量数据,同时最大限度地减少内存使用。

此表列出了 androidx.recyclerview 组中的所有工件。

工件 稳定版 候选版 Beta 版 Alpha 版
recyclerview 1.3.2 - 1.4.0-beta01 -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
此库上次更新于:2024 年 8 月 21 日

声明依赖项

要添加对 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-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 Plugin)警告,可以忽略它们。

版本 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 Plugin)警告,可以忽略它们。

新功能

  • 可变刷新率支持:RecyclerView 现在在通过 OverScroller 滚动时(例如,从抛掷或平滑滚动中稳定下来)调用 setFrameContentVelocity。(I8f8a4

API 更改

  • 已弃用 ViewCompat.LAYOUT_DIRECTION_ API(I51710b/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 或更高版本。有关更多详细信息,请参阅这篇文章。(Ia60e0b/345472586
  • 将项目视图类型添加到 RecyclerView 绑定/创建跟踪部分,如果预计下一帧将使用 RV 预取,则将其标记为“强制 - 下一帧需要”,因此应尽快开始工作。(I8ec3eb/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 更改

  • 添加新的 setDebugAssertionsEnabledsetVerboseLoggingEnabled 方法,可以帮助调试应用程序中与 RecyclerView 相关的错误。(I514b9

错误修复

  • 通过在调用 onBind 时临时重新附加临时分离的视图,修复了 ViewTreeLifecycleOwner(包括 ComposeView)用户的崩溃问题。(I7244f2cb/265347515b/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-alpha021.3.0-beta01 中),当与 Jetpack Compose 一起使用时。如果您使用的是 Compose 1.2.0-beta02 或更高版本,并且正在使用先前互操作性指南中描述的 MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy则应删除这些,因为它们不再比默认状态更好。
  • 添加了新的 ConcatAdapter.getWrappedAdapterAndPosition 方法,允许在没有 ViewHolder 的情况下(例如 SpanSizeLookup)检索包装适配器信息。(I2bd4cb/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 中添加的空值能力注释,因为它们代表了 Kotlin 用户的重大源代码不兼容更改(I7a258I1557e6I8db76

版本 1.3.0-beta01

2022 年 6 月 29 日

androidx.recyclerview:recyclerview:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。

新功能

  • 此测试版包含性能改进(以前包含在1.3.0-alpha02 中),当与 Jetpack Compose 一起使用时。如果您使用的是 Compose 1.2.0-beta02 或更高版本,并且正在使用先前互操作性指南中描述的 MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy则应删除这些,因为它们不再比默认状态更好。

API 更改

  • 为许多方法和参数添加了空值能力注释,以改进 Java 用户的 lint 警告和 Kotlin 用户的互操作性。这对于某些 Kotlin 用户来说可能是源代码中断的更改,并且会导致某些 Java 用户出现其他 lint 警告/错误。(I61829b/236487044Ia0b6fI6f119b/236487209Ibe1deb/236487210

错误修复

  • 通过设置辅助功能节点信息类名,确保网格被辅助功能服务视为网格。(I12812

版本 1.3.0-alpha02

2022 年 4 月 6 日

androidx.recyclerview:recyclerview:1.3.0-alpha02 已发布。版本 1.3.0-alpha02 包含这些提交。

API 更改

  • 为将来的 SDK 添加实验性 BuildCompat 方法(Iafd82b/207528937
  • 添加了新的 ConcatAdapter.getWrappedAdapterAndPosition 方法,允许在没有 ViewHolder 的情况下(例如 SpanSizeLookup)检索包装适配器信息。(I2bd4cb/191543920

错误修复

  • 与新的 AndroidX PoolingContainer 库集成(Ib89d2
  • 调整了辅助功能操作的滚动距离(If74ae

版本 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 包含这些提交。

错误修复

  • ViewHolderConcatAdapter 中现在在 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 上连接多个适配器。有关更多信息,请参阅博文

延迟状态恢复: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 包含以下提交。

新功能

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)。

错误修复

版本 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,允许 Adapter 控制何时应恢复布局状态。

    • 例如,您可以调用

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    使 RecyclerView 等待 Adapter 不为空时再恢复滚动位置。

  • 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 以来重要的更改

  • PagerSnapHelperLinearSnapHelper 现在会考虑 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/1106715aosp/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 已发布。此版本中包含的提交可以在这里找到 这里

错误修复

  • PagerSnapHelperLinearSnapHelper 现在会考虑 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 不能在该方向滚动时,分派到嵌套预滚动的 dxdy 参数将归零 (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 滚动的问题。(b/131115697aosp/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-alpha06androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 已发布。此版本中包含的提交可以在 此处找到。

新功能

  • 添加了 smoothScrollBy 的新重载:RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration),它允许您指定动画持续时间(毫秒)。(aosp/952807

API 更改

  • GridLayoutManagerStaggeredGridLayoutManager 不再自动将全跨度项标记为辅助功能目的的标题。(aosp/969703
  • recyclerview-selection 中保留选择顺序(按创建时间)。(aosp/937279

错误修复

  • 修复了一个错误,该错误导致 RecyclerView 在嵌套滚动情况下以错误的速度抛掷。(aosp/961642
  • recyclerview-selection 添加了稳定性改进。(aosp/960213aosp/926296

版本 1.1.0-alpha05

2019 年 5 月 7 日

androidx.recyclerview:recyclerview:1.1.0-alpha05androidx.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

错误修复

版本 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-alpha01androidx.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[])

错误修复

  • 修复了使用 TransitionManagerRecyclerView 中折叠/展开项目时发生的崩溃。(b/37129527
  • 修复了 RecyclerView.OnItemTouchListener 的行为与视图系统的 onInterceptTouchEventonTouchEvent 行为不一致的错误。(aosp/721235
  • 修复了与平滑滚动相关的几个极端情况下的错误。(aosp/729718aosp/747168aosp/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 上的 withGestureTooltypeswithPointerTooltypes 方法。这些方法将在将来的版本中删除。

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 包含这些提交

与防御性检查和内部状态管理相关的稳定性得到普遍改进。

错误修复

API 更改

  • 在缺少的情况下,为类和方法添加了选择键类型参数。
  • 已弃用方法