This table lists all the artifacts in the androidx.recyclerview group.
To add a dependency on RecyclerView, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
dependencies { implementation "androidx.recyclerview:recyclerview:1.4.0" // For control over item selection of both touch and mouse driven selection implementation "androidx.recyclerview:recyclerview-selection:1.2.0" }
dependencies { implementation("androidx.recyclerview:recyclerview:1.4.0") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.2.0") }
For more information about dependencies, see Add build dependencies.
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
January 15, 2025
androidx.recyclerview:recyclerview:1.4.0 is released. Version 1.4.0 contains these commits.
Important changes since RecyclerView 1.3.2
Adaptive refresh rate support: RecyclerView now calls setFrameContentVelocity when it is scrolling via OverScroller (such as settling from a fling or smooth scroll). (I8f8a4)September 18, 2024
androidx.recyclerview:recyclerview:1.4.0-rc01 is released, with no changes since 1.4.0-alpha02/. Version 1.4.0-rc01 contains these commits.
Compatibility note: This version will only compile against the API 35 (Vanilla Ice Cream) SDK or higher. If you see AGP (Android Gradle Plugin) warnings when you upgrade, you can suppress them.
New Features
Adaptive refresh rate support: RecyclerView now calls setFrameContentVelocity when it is scrolling via OverScroller (such as settling from a fling or smooth scroll). (I8f8a4)API Changes
RecyclerView$LayoutManager#isLayoutReversed API. (I4970e)Other changes
RecyclerView bind/create trace sections, and label RV prefetches as 'forced - needed next frame' if they are expected to be used by the next frame, and thus should start work as soon as possible. (I8ec3e, b/309523615)compileSdk to 35 (see "Compatibility note" above for details). 5dc41beAugust 21, 2024
androidx.recyclerview:recyclerview:1.4.0-beta01 is released, with no changes since 1.4.0-alpha02. Version 1.4.0-beta01 contains these commits.
Compatibility note: This version will only compile against the API 35 (Vanilla Ice Cream) SDK or higher. If you see AGP (Android Gradle Plugin) warnings when you upgrade, you can suppress them.
August 7, 2024
androidx.recyclerview:recyclerview:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.
Compatibility note: This version will only compile against the API 35 (Vanilla Ice Cream) SDK or higher. If you see AGP (Android Gradle Plugin) warnings when you upgrade, you can suppress them.
New Features
setFrameContentVelocity when it is scrolling via OverScroller (such as settling from a fling or smooth scroll). (I8f8a4)API Changes
ViewCompat.LAYOUT_DIRECTION_ APIs (I51710, b/317055535)RecyclerView$LayoutManager#isLayoutReversed API. (I4970e)Other changes
RecyclerView bind/create trace sections, and label RV prefetches as 'forced - needed next frame' if they are expected to be used by the next frame, and thus should start work as soon as possible. (I8ec3e, b/309523615)compileSdk to 35 (see "Compatibility note" above for details). 5dc41beExternal Contribution
GestureDetectorCompat is now deprecated as GestureDetector is available from the minSdk. (Icc4cd)October 18, 2023
androidx.recyclerview:recyclerview:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.
API Changes
RecyclerView$LayoutManager#isLayoutReversed API. (I4970e)Bug Fixes
October 18, 2023
androidx.recyclerview:recyclerview:1.3.2 is released. Version 1.3.2 contains these commits.
Bug Fixes
July 26, 2023
androidx.recyclerview:recyclerview:1.3.1 is released, with no changes since 1.3.1-rc01. Version 1.3.1 contains these commits.
For release notes of previous release, refer to our Release Notes page
May 24, 2023
androidx.recyclerview:recyclerview:1.3.1-rc01 is released. Version 1.3.1-rc01 contains these commits.
Users of ViewPager2 must update to at least 1.1.0-beta02 when updating to this version of RecyclerView to avoid crashes.
API Changes
setDebugAssertionsEnabled and setVerboseLoggingEnabled methods that can aid in debugging RecyclerView-related issues in apps. (I514b9)Bug Fixes
ViewTreeLifecycleOwner (including ComposeView) by temporarily re-attaching temporarily detached views when calling onBind. (I7244f2c, b/265347515, b/283288295)March 8, 2023
androidx.recyclerview:recyclerview:1.3.0 is released, with no changes since 1.3.0-rc01. Version 1.3.0 contains these commits.
Important changes since 1.2.0
1.2.0-beta02 or higher and were using the MyComposeAdapter and DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy described in the previous interoperability guidelines, you should remove these, as they are no longer an improvement over the default state.ConcatAdapter.getWrappedAdapterAndPosition method added to allow for retrieving wrapped adapter information in situations where you don't have a ViewHolder, such as a SpanSizeLookup (I2bd4c, b/191543920)September 21, 2022
androidx.recyclerview:recyclerview:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.
August 10, 2022
androidx.recyclerview:recyclerview:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.
API Changes
June 29, 2022
androidx.recyclerview:recyclerview:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.
New Features
1.2.0-beta02 or higher and were using the MyComposeAdapter and DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy described in the previous interoperability guidelines, you should remove these, as they are no longer an improvement over the default state.API Changes
Bug Fixes
April 6, 2022
androidx.recyclerview:recyclerview:1.3.0-alpha02 is released. Version 1.3.0-alpha02 contains these commits.
API Changes
BuildCompat methods for future SDKs (Iafd82, b/207528937)ConcatAdapter.getWrappedAdapterAndPosition method added to allow for retrieving wrapped adapter information in situations where you don't have a ViewHolder, such as a SpanSizeLookup (I2bd4c, b/191543920)Bug Fixes
September 15, 2021
androidx.recyclerview:recyclerview:1.3.0-alpha01 is released. Version 1.3.0-alpha01 contains these commits.
New Features
June 2, 2021
androidx.recyclerview:recyclerview:1.2.1 is released. Version 1.2.1 contains these commits.
Bug Fixes
ViewHolders inside a ConcatAdapter now return the correct adapter position when queried in onViewRecycled callback. (b/187339376)April 7, 2021
androidx.recyclerview:recyclerview:1.2.0 is released. Version 1.2.0 contains these commits.
Major changes since 1.1.0
ConcatAdapter: This new adapter allows you to easily concatenate multiple Adapters on the same RecyclerView. See the blog post for more information.
ViewHolder.getAdapterPosition is deprecated and replaced with two new methods:
Lazy State Restoration: RecyclerView Adapter can now delay state restoration until its contents are loaded. See the documentation for more details.
March 24, 2021
androidx.recyclerview:recyclerview:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.
Bug Fixes
ConcatAdapter.Config.Builder now has default values that match Config.DEFAULT (b/157169835)February 24, 2021
androidx.recyclerview:recyclerview:1.2.0-beta02 is released. Version 1.2.0-beta02 contains these commits.
Bug Fixes
December 2, 2020
androidx.recyclerview:recyclerview:1.2.0-beta01 is released with no change since 1.2.0-alpha06. Version 1.2.0-beta01 contains these commits.
October 1, 2020
androidx.recyclerview:recyclerview:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits.
New Features
API Changes
July 22, 2020
androidx.recyclerview:recyclerview:1.2.0-alpha05 is released. Version 1.2.0-alpha05 contains these commits.
Bug Fixes
ArrayIndexOutOfBoundsException in StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)External Contributions
June 24, 2020
androidx.recyclerview:recyclerview:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits.
API Changes
MergeAdapter has been renamed to ConcatAdapter to avoid any confusion with different data merging behaviors (c0540c, b/158019211).Bug Fixes
April 29, 2020
androidx.recyclerview:recyclerview:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits.
New Features
nestedScrollBy method that allows programmatic scrolling that cooperates with nested scrolling: (Ibaa58)April 1, 2020
androidx.recyclerview:recyclerview:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.
This and higher versions of RecyclerView are not compatible with lower versions of ViewPager2. If you are currently using androidx.viewpager2:viewpager2:1.0.0 or lower, make sure to update to androidx.viewpager2:viewpager2:1.1.0-alpha01.
New Features
MergeAdapter
MyAdapter adapter1 = ...;
AnotherAdapter adapter2 = ...;
MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
recyclerView.setAdapter(mergedAdapter);
For the sample above, MergeAdapter will present items from adapter1 followed by adapter2.
RecyclerView.Adapter lazy state restoration:
Added a new API to the RecyclerView.Adapter class which allows Adapter to control when the layout state should be restored.
For example, you can call:
myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
to make RecyclerView wait until Adapter is not empty before restoring the scroll position.
CollectionInfo and CollectionItemInfo will no longer be populated by default.
If you would like Accessibility Services (Talkback for example) to continue indicating count and item index to the user, you will need to populate CollectionInfo and CollectionItemInfo yourself.
These objects are no longer populated in the framework because the framework can’t determine the count of items as perceived by the user (such as separators, headers, or RecyclerView items that represent multiple perceived items).
Bug Fixes
December 18, 2019
androidx.recyclerview:recyclerview:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.
Bug fixes
November 20, 2019
androidx.recyclerview:recyclerview:1.1.0 is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
PagerSnapHelper and LinearSnapHelper now take padding of RecyclerView into account regardless of the value of clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)RecyclerView.setLayoutTransition(LayoutTransition) is formally deprecated and will throw an IllegalArgumentException when called with a non null value. Use RecyclerView.setItemAnimator(ItemAnimator) instead. (aosp/839414)NestedScrollingChild3, enabling it to be informed of when all its nested scrolling parents have stopped consuming nested scrolling distances. If developer code currently overrides RecyclerView.onNestedScroll(View, int, int, int, int, int), it will likely no longer be called and RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) should be overridden instead.recyclerViewStyle, which allows setting of the default style in your themeLinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) can be overridden to customize how much extra layout space should be added to either side of the associated RecyclerView. (aosp/931259)RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), that allows you to specify a duration in milliseconds for how long the animation should take. (aosp/952807)October 23, 2019
androidx.recyclerview:recyclerview:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.
Bug fixes
RecyclerViewAccessibilityDelegate.ItemDelegate
(aosp/1138057, aosp/1133434)October 9, 2019
androidx.recyclerview:recyclerview:1.1.0-beta05 is released. Version 1.1.0-beta05 contains these commits.
API changes
Bug fixes
September 5, 2019
androidx.recyclerview:recyclerview:1.1.0-beta04 is released. The commits included in this version can be found here.
Bug fixes
PagerSnapHelper and LinearSnapHelper now take padding of RecyclerView into account regardless of the value of clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)NestedScrollingParent to scroll (b/138668210, aosp/1105373). This benefits libraries such as ViewPager2.SCROLL_STATE_DRAGGING before nested pre scrolls are dispatched (aosp/1105373)dx and dy arguments dispatched to nested pre-scrolls are zeroed when RecyclerView can’t scroll in that direction (aosp/1105373)August 15, 2019
androidx.recyclerview:recyclerview:1.1.0-beta03 is released. The commits included in this version can be found here.
API changes
View.onScrollChanged(int l, int t, int oldl, int oldt) such that accessibility services are notified about scroll changes accurately. (aosp/1007823)Bug fixes
August 7, 2019
androidx.recyclerview:recyclerview:1.1.0-beta02 is released. The commits included in this version can be found here.
New features
recyclerViewStyle, which allows setting of the default style in your themeBug fixes
July 2, 2019
androidx.recyclerview:recyclerview:1.1.0-beta01 is released. The commits included in this version can be found here.
New features
RecyclerView now participates in nested scrolling when a scroll is initiated via accessibility events. (aosp/973584)June 5, 2019
androidx.recyclerview:recyclerview:1.1.0-alpha06 and androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 are released. The commits included in this version can be found here.
New features
RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), that allows you to specify a duration in milliseconds for how long the animation should take. (aosp/952807)API changes
GridLayoutManager and StaggeredGridLayoutManager no longer automatically label full span items as headers for accessibility purposes (aosp/969703)recyclerview-selection (aosp/937279)Bug fixes
RecyclerView was flinging with incorrect velocities while in a nested scrolling situation. (aosp/961642)recyclerview-selection (aosp/960213, aosp/926296)May 7, 2019
androidx.recyclerview:recyclerview:1.1.0-alpha05 and androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 are released. The commits included in this version can be found here.
New features
LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) can be overridden to customize how much extra layout space should be added to either side of the associated RecyclerView. (aosp/931259)API changes
DividerItemDecoration drawable (aosp/937282)LinearLayout.getExtraLayoutSpace(RecyclerVew.State) in favor of a new mechanism that allows to have custom extra layout space on both sides. The new method is LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)Bug fixes
April 3rd, 2019
androidx.recyclerview:recyclerview:1.1.0-alpha04 is released. The commits included in this version can be found here.
Bug fixes
March 13th, 2019
androidx.recyclerview:recyclerview:1.1.0-alpha03 is released. The full list of commits included in this version can be found here.
New features
GridLayoutManager: Opt in, higher resolution GridLayoutManager scroll bar dimension estimation (aosp/838836):
GridLayoutManager.GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) passing in true.GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) for more information.Bug fixes
RecyclerViewAccessibilityDelegate was not being associated with the ViewHolder’s itemView, breaking Accessibility. This is now fixed (aosp/917740).January 30, 2019
androidx.recyclerview:recyclerview 1.1.0-alpha02 is released.
API changes
RecyclerView.setLayoutFrozen(boolean) and RecyclerView.isLayoutFrozen() are deprecated in favor of RecyclerView.suppressLayout(boolean) and RecyclerView.isLayoutSuppressed(). (aosp/839414)RecyclerView.setLayoutTransition(LayoutTransition) is formally deprecated and will throw an IllegalArgumentException when called with a non null value. (aosp/839414)Bug fixes
SmoothScroller is never stopped (aosp/843741)SCROLL_STATE_IDLE may not be called at the end of a scrolling animation. (aosp/812576)December 3, 2018
androidx.recyclerview 1.1.0-alpha01 and androidx.recyclerview-selection 1.1.0-alpha01 are released.
API changes
NestedScrollingChild3, enabling it to be informed of when all its nested scrolling parents have stopped consuming nested scrolling distances. If developer code currently overrides RecyclerView.onNestedScroll(View, int, int, int, int, int), it will likely no longer be called and RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) should be overridden instead.Bug fixes
TransitionManager to collapse/expand item in RecyclerView (b/37129527).RecyclerView.OnItemTouchListener’s behavior was inconsistent with the view system’s onInterceptTouchEvent and onTouchEvent behavior (aosp/721235)PagerSnapHelper to deal with non-typical child views (aosp/795752)Bug fixes
ConcurrentModificationException when data set changed with removing
selection.December 17, 2025
androidx.recyclerview:recyclerview-selection:1.3.0-alpha01 is released. Version 1.3.0-alpha01 contains these commits.
API Changes
RecyclerView to select an item, whether any other already-selected items stay selected or are deselected.May 20, 2025
androidx.recyclerview:recyclerview-selection:1.2.0 is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
May 7, 2025
androidx.recyclerview:recyclerview-selection:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.
Bug Fixes
April 9, 2025
androidx.recyclerview:recyclerview-selection:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.
API Changes
ViewCompat.LAYOUT_DIRECTION_ APIs (I51710, b/317055535)Bug Fixes
-Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler). (I03b80, b/326456246)May 5, 2021
androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits.
Bug Fixes
January 27, 2021
androidx.recyclerview:recyclerview-selection:1.1.0 is released. Version 1.1.0 contains these commits.
Major changes since 1.0.0
withGestureTooltypes and withPointerTooltypes methods on SelectionTracker.Builder. These methods will be removed in a future release.October 1, 2020
androidx.recyclerview:recyclerview-selection:1.1.0-rc03 is released. Version 1.1.0-rc03 contains these commits.
Bug Fixes
Thanks to Stefan Kiesler for testing fixes and feedback.
September 2, 2020
androidx.recyclerview:recyclerview-selection:1.1.0-rc02 is released. Version 1.1.0-rc02 contains these commits.
Highlights
onRequestDisallowInterceptTouchEvent, allowing it to play well with ItemTouchHelper (just swipe it away!).Bug Fixes
GestureDetector events resulting in lost taps during active selection (b/165030422)onRequestDisallowInterceptTouchEvent correctly”Cannot call this method in a scroll callback” seen during mouse scrolling on QStableIdKeyProvider) to clearly state requirements of RecyclerView instanceFebruary 5, 2020
androidx.recyclerview:recyclerview-selection:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.
Bug fixes
December 4, 2019
androidx.recyclerview:recyclerview-selection:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.
General improvements in stability related to defensive checks and management of internal state.
Bug fixes
API changes
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2026-06-22 UTC.