Releases: davideas/FlexibleAdapter
v5.1.0 (2026)
SDK 30 & Maven Central
- To enable publication to Maven Central in 2026, the project was rebuilt with a modernized build system and now targets SDK 30 as low as it allowed (2026).
- Maven Central Migration - Library updates to fix build by @lauren2020 in #770 (2021).
Fixes
I took the opportunity to quickly add trivial or old fixes:
- Resolved #764 - Fixed variable assignment (2026).
- Resolved #762 and #728 - Javadoc misleading (2026).
- Fixed #716 - NPE in
applyAndAnimateRemovals(2019). - The adapter lost filtered state when
updateDataSetwas called while a filter was active (2019). - Added filter state restoration code that saves current items as original list and clears items when filter is active (2019).
- Fixed build issues / sticky headers by @masc3d in #711 (2019).
Message to the community
The version 5.1.0, originally released in 2018 with AndroidX support, was primarily a quick and incomplete release.
Due to several years of inactivity, the shutdown of JCenter, and the decision to archive the project, the library remained unavailable. In March 2026, I republished to Maven Central to restore proper distribution and long-term availability.
The original version number (5.1.0) has been preserved to maintain historical continuity with the 2018 release.
No further feature requests will be processed, as the library is considered a "finished" product.
v5.1.0 (2018)
FlexibleAdapter v5.1.0
- AndroidX
UI v1.0.0
- AndroidX
Databinding v1.0.0
- AndroidX
LiveData v1.0.0
- AndroidX
v5.0.6
v5.0.5
FlexibleAdapter v5.0.5
Scrollbar improvements:
- New method
setHandleAlwaysVisible(). - New attribute
fastScrollerHandleAlwaysVisible. - New resource colors that can be overridden:
fast_scroller_bar,fast_scroller_handle_idle.
Small improvements
- New method
smoothScrollToPosition(), to safely scroll to a position with a default delay of150ms. - Resolved #607 - Added new method
removeSection(IHeader). - Better sticky header layout at runtime.
Fixes
- Fixed #605 - FastScroller handle sync delay (Handle didn't move during scrolling of the 1st and last page in a long list).
- Fixed #606 - Selection bug after screen was turning off and then on. Bug was introduced in 5.0.2 in
onSaveInstanceState.
UI v1.0.0-b5
- New utils methods
v5.0.4
FlexibleAdapter v5.0.4
Small behavior/deprecation change
- All items inheriting from
AbstractFlexibleItemare born with draggable and swipeable enabled! - Renamed/Deprecated method
FlexibleAdapter.isEnabled(position)in favor of the new nameisItemEnabled(position).
Small improvements
- Resolved #580 - Removed
finalfromFlexibleAdapter#removeListener(). - Resolved #601 - Can disable manual/onClick collapsing of an
ExpandableViewHolder: new methodisViewCollapsibleOnClick(). - Removed some
@CallSuperinExpandableViewHolder. - Updated Gradle distribution to v4.6, build scripts and library versions.
Fixes
- Fixed #592 - Multi expandable items: Position must be increased by value returned from "expand" method.
- Fixed #594 - Updating sticky header checks same item view type. Increased delay to
100ms, giving more time to the LayoutManager computation. - Fixed #597 -
FlexibleAdapter.onLoadMoreComplete(list, -1)not working. - AnimatorAdapter will animate correctly the Scrollable Headers and Footers.
- Fixed all returning generic type of FlexibleAdapter setters.
- Adjusted some log description.
UI v1.0.0-b4
- Improved
EmptyViewHelpersetup: static creator methods (constructors are now private). - On going animations of emptyViews are now cancelled before changing again alpha value (fixes consecutive fast switching).
Databinding v1.0.0-b3
- Using
android.databinding.enableV2=trueat compile time.
v5.0.3
v5.0.2
v5.0.1
v5.0.0
⚠️ Warning: If you come from previous versions/snapshots, with this update you MUST review your code. Please, follow the Wiki page Migrations.
Improvements
- Resolved #384 - Ability to recognize child (👶) view click.
- Resolved #507 - New filter results callback: support for observing the current state of filtering.
- Resolved #523 - Swipe delete,
UnsupportedOperationExceptionfor immutable list on sort. - Resolved #540 - Multi filter: filter object can be of any type, not just String.
- Resolved #543 -
DiffUtilis back 😉 - Added new method
getItem(position, class)to automatically cast the item expected from that position. - Added new method
setHeadersShown(boolean)to manually change the flag to indicate that headers are already inserted in the main list by the user. - Removed all deprecated functions!
- Improved nullity of FastScroller instance.
Fixes
- Fixed #512 - NPE in
initStickyHeadersHolderon orientation change. - Fixed #521 - Fixed Sticky Headers swapping with Staggered Layout.
- Fixed #516 - Better section gap when expand/collapse the last item of section.
- Fixed #514 - Removed @nonnull annotation for parameter in
addListenerandremoveListenermethods. - Fixed #547 - Invalid first page number when initializing with empty list/null.
- Fixed #552 - Scrollable Header appears under main items in endlessly scrolling list.
UI extension
- Added EmptyViewHelper #439.
LiveData extension
- Added Comparator to sort items when using FlexibleItemProvider with LiveData.
v5.0.0-rc4
⚠️ Warning: If you come from previous versions/snapshots, with this update you MUST review your code. Please, follow the Wiki page Migrations.
Deprecations / New Behaviors
- Resolved #501 - Some Common, Helper and Util classes have been moved to a new UI Extension library: this made the Adapter library thinner and without the direct dependency of Support Design library. The package signature remains the same.
implementation 'eu.davidea:flexible-adapter-ui:1.0.0-b1'
- Resolved #438
UndoHelper: Use of newAction.UPDATEdoesn't remove items from the Adapter RefactoringOnUndoListenerintoOnActionListener. - Resolved #503 - Forward scrolling and Reverse scrolling are now independent (deprecated old methods).
Improvements
- Resolved #503 - Forward scrolling and Reverse scrolling are now independent (new methods involved).
- Resolved #506 - Added IFlexible method callbacks when
onViewAttachedToWindow()/onViewDetachedToWindow()are called by RV. - The method
removeListener(@NonNull Object listener)can now accept the instance of the listener or theClassobject (as before) if the instance is not available. - Upgrade to Android Studio 3.0.0 and Support Lib 27.0.2.
Fixes
- Fixed #475 - Custom and default divider gone in RC3.
- Fixed #477 -
ExpandableViewHolder#onClickshould always callsuper(). - Fixed #481 -
highlightTextandhighlightWordstext loose the upper case during the scan. - Fixed #484 -
bindViewHoldermethod is causing a problem with GreenDao. - Fixed #490 - Automatically fetch first result on load more, scrolls the RecyclerView.
- Fixed #492 - NPE when expanding item with auto-scroll.
- Fixed #499 - Sticky Header can only be updated once.