[Breaking changes]
- Migrated to AndroidX
- Removed some deprecated features
BaseWrapperAdapter
SwipeableItemConstants.REACTION_CAN_SWIPE_BOTH
SwipeableItemConstants.REACTION_CAN_NOT_SWIPE_BOTH
SwipeableItemConstants.REACTION_CAN_NOT_SWIPE_BOTH_WITH_RUBBER_BAND_EFFECT
- New
DraggableItemState getDragState()
method added to theDraggableItemViewHolder
interface - New
SwipeableItemState getSwipeState()
method added to theSwipeableItemViewHolder
interface - New
ExpandableItemState getExpandState()
method added to theExpandableItemViewHolder
interface
[New features & improvements]
- Introduced
DraggableItemState
, no moreDraggableItemConstants.STATE_FLAG_**
bit operations required anymore in user code - Introduced
SwipeableItemState
, no moreSwipeableItemConstants.STATE_FLAG_**
bit operations required anymore in user code - Introduced
ExpandableItemState
, no moreExpandableItemConstants.STATE_FLAG_**
bit operations required anymore in user code - Annotated many public method with
@NonNull
or@Nullable
[Breaking changes]
- Changed minimum SDK level to v14
- New callbacks are added to
SwipeableItemAdapter
andDraggableItemAdapter
[New features & improvements]
-
Bumped Support libraries to v27.0.0
-
A new callback
onItemSwipeStarted()
is added toSwipeableItemAdapter
to reduce implicitly calls of thenotifyDataSetChanged()
method.Migration code:
@Override public void onSwipeItemStarted(MyViewHolder holder, int position) { notifyDataSetChanged(); // or you can implement better invalidation code here }
-
New callbacks
onItemDragStarted()
andonItemDragFinished()
are added toDraggableItemAdapter
to reduce implicitly calls of thenotifyDataSetChanged()
method.Migration code:
@Override public void onItemDragStarted(int position) { notifyDataSetChanged(); // or you can implement better invalidation code here } @Override public void onItemDragFinished(int fromPosition, int toPosition, boolean result) { notifyDataSetChanged(); // or you can implement better invalidation code here }
[Bug fixes]
- Fixed some internal wrapper adapter's onViewRecycled() method is not invoked (issue #376)
- Fixed unexpected onClick() event fired after finished dragging item (issue #378)
[New features]
- Added RecyclerViewSwipeManager.performFakeSwiping (issue #372)
[Improvements]
- Changed to preserve item scaling when starts dragging (issue #384)
[Bug fixes]
- Fixed View.OVER_SCROLL_NEVER not work when dragging (issue #374)
[Improvements]
- Expose path segments for header footer adapter (PR #368, #373)
- Updated support library to v25.3.0
[BREAKING CHANGE]
- The
payload
parameter is added toOnGroupExpandListener
andOnGroupCollapseListener
(issue #350) (commit: 353406ea43657dead1ba65207b95e9067e457f6d)
[New features]
- Added fine control of initial state of group items by
ExpandableItemAdapter.getInitialGroupExpandedState()
(issue #346) - Added variants of
expandGroup()
/collapseGroup()
methods which has apayload
parameter (issue #350)
[Bug fixes]
- Fixed NullPointerException issue (issue #358 & PR #362, thanks @polyak01 !)
- Fix swipe amount not applied before laid out item views in proportional mode (issue #361)
[Improvements]
- Added scrolling support while dragging in NestedScrollView (issue #351)
- Updated support library to v25.2.0
[Bug fixes]
- Fixed IllegalStateException on touching a group item while RecyclerView is calculating layout (issue #339)
- Fixed onBindGroupViewHolder()/onBindChildViewHolder() method with palyloads parameter not used bug
[Improvements]
- Reduce overdraws of "Button under swipeable item" (PR #331, thx. @AnirudhaAgashe)
- Updated support library to v25.1.0
[Bug fixes]
- Fixed createDraggingItemImage() method regression (issue #325)
[Improvements]
- Updated support library to v25.0.1
[Bug fixes]
- Backport official DefaultItemAnimator fixes to RefactoredDefaultAnimator (issue #324)
- Improve dragging item image bitmap creation process (issue #319)
[New features]
- Introduced ComposedAdapter
- Introduced Headers and Footers support
- Added new demos for new adapter related features
- Made dragging item appearance controllable (issue #193, #292)
- Added AFTER_SWIPE_REACTION_DO_NOTHING (pull request #308)
- Added SwipeResultActionDoNothing and SwipeResultActionMoveToOrigin
[Improvements]
- Updated support library to v25.0.0
[Bug fixes]
- Small bug fixes
[New features]
- Added
RecyclerViewExpandableItemManager.setDefaultGroupsExpandedState(boolean expanded)
(issue #281) - Added
SwipebleItemViewHolder.setProportionalSwipeAmountModeEnabled(boolean enabled)
(issue #286) - Added
RecyclerViewExpandableItemManager.notifyGroupItemChanged(int groupPosition, Object payload)
[Bug fixes]
- Fixed item sliding animation not working bug (issue #285)
[New features]
- Added
void RecyclerViewDragDropManager.setItemMoveMode(@ItemMoveMode int mode)
(issue #253, #269) - Added
void RecyclerViewSwipeManager.setSwipeThresholdDistance(int distanceInPixels)
(issue #266) - Added
notifyGroupItemMoved()
andnotifyChildItemMoved()
methods toRecyclerViewExpandableItemManager
(issue #270) - Added
RecyclerViewDragDropManager.setInitiateOnTouch(boolean initiateOnTouch)
(issue #273)
[Improvements]
- Better handling of
notifyItem*
method calls during swiping (issue #274) - Improved span size change handling during dragging (issue #278)
[Bug fixes]
- IllegalStateException (issue #247)
- Item loses Remove Animation properties when removed + undo (issue #262)
[Bug fixes]
- Fix broken drag and drop behavior on API level 10
[New features]
- Introduced
DraggableItemAdapter.onCheckCanDrop()
callback (issue #233)
[Improvements]
- Improved Drag & Drop behavior for StaggeredGridLayout (issue #219)
- Updated support library to v23.3.0
[Breaking changes]
- Removed deprecated classes/methods/fields marked as @Deprecated in v0.8.x
- Removed Legacy* swipable feature related classes
[New features]
- Added onItemDragMoveDistanceUpdated() callback to OnItemDragEventListener (#191)
- Added "minimal" draggable/swipeable/expandable examples
- Updated support library to v23.2.1
[Bug fixes]
- Fixed drag & drop behavior of GridLayoutManager (related to #193)
[New features]
- Added these methods to RecyclerViewExpandableItemManager (issue #161)
- getExpandedGroupsCount()
- getCollapsedGroupsCount()
- isAllGroupsExpanded()
- isAllGroupsCollapsed()
[Bug fixes]
- Fixed issue #158, #173, #176 (NullPointerException bug)
- Fixed issue #173 (crash bugs bug)
- Fixed issue #163 (Dragging with only 2 items in list lags significantly more than if it had more than 2 items.. bug)
- Fixed issue #153 (Bug:happens as the user dragging,and the item root view's margin is set bug)
- Fixed issue #152 (bug:Samsung S3 4.1.1(genymotion) with swipe left bug)
- Updated support library to v23.1.1
- Fixed issue #145 (SwipeableItemWrapperAdapter.onViewRecycled crash bug)
- Re-implement the ExpandableItemIndicator without vector-compat (related issue: #149)
- Reduced overdraws on API level v20 or lower (related PR: #146)
- Small bug fixes
- Fixed issue #142 (Recycler View crash on destroy)
- Fixed issue #131 (Bottom padding of recycler view offsets the dragging item [Drag drop] bug)
- Fixed issue #133 (Wrong item position used when data set changes during swipe bug)
- Fixed issue #136 (Item swipe completes after holder recycled bug)
- Updated support library to v23.1.0
- Added notify*Changed methods which has payload parameter
- Fixed issue #124 (Long press should cancel when recycler view scrolls)
[Main new features and improvements]
- Support GridLayoutManager (drag & drop, swipe) (issue #41, #67, #86)
- Support horizontal layout orientaiton (LinearLayoutManager and GridLayoutManager) (issue #116)
- Organized demo launcher screen
[Changes of RecyclerViewExpandableItemManager]
- Added the expandAll()/collapseAll() methods (issue #100)
- Added variant of the notifyGroupItemInseterd()/notifyGroupItemRangeInseterd() methods (issue #100)
- Added the getGroupCount()/getChildCount() methods
- Added the scrollToGroup() method (issue #60)
- Added the STATE_FLAG_HAS_EXPANDED_STATE_CHANGED state flag
[Changes of RecyclerViewSwipeManager]
- Added vertical swipe feature (issue #116)
- Introduced the SwipeResultAction object (issue #69)
- This is a BREAKING CHANGE. Please refer to the Migration Guide section on README.
[Changes of RecyclerViewDragDropManager]
- Added the setDragEdgeScrollSpeed() and getDragEdgeScrollSpeed() (issue #85)
[New demos]
- "Draggable (Grid Layout)"
- "Expandable (Groups already expanded)"
- "Swipeable (Vertical)"
- "Swipeable with ViewPager"
- "Swipeable (Legacy)"
- "Swipe on Long Press"
[Fixed issues]
- Fixed issue #41 (Swipe not working if RecyclerView is using a GridLayout)
- Fixed issue #60 (Scroll to the last child if it is offscreen)
- Fixed issue #67 (GridLayoutManager support)
- Fixed issue #69 (Dispatch events to parent when can't swipe to a direction)
- Fixed issue #75 (Error In -->Expandable(Add/Remove Items))
- Fixed issue #85 (Drag & drop edge scroll speed)
- Fixed issue #86 (Require help in implementing drag and drop for Grid View)
- Fixed issue #98 (Callback method when swipe animation is fully completed?)
- Fixed issue #100 (How to expand all group by default?)
- Fixed issue #111 (Drag is not working when a drag handle is small)
- Fixed issue #116 (can i build a horizontal recyclerview?)
- Fixed issue #118 (How to swipe on LongClick? enhancement)
- Fixed some other minor issues
- Fixed issue #75 (Error In -->Expandable(Add/Remove Items))
- Updated to support-v7-recyclerview v22.2.1
- Added a new demo "Expandable (Add/Remove items)"
- Added the RecyclerViewDragDropManager.OnItemDragEventListener
- Added the RecyclerViewSwipeManager.OnItemSwipeEventListener
- Added methods of notifyInserted() and notifyRemove() families to RecyclerViewExpandableItemManager
- Renamed getInitiateOnLongPress()/getInitiateOnMove() methods to isInitiateOnLongPressEnabled()/isInitiateOnMoveEnabled()
- Fixed issue #54 (ClassCastException, MyPlatformChildViewHolder cannot be MyPlatformGroupViewHolder)
- Fixed issue #64 (After swipe/remove of a group crash in some cases)
- Fixed issue #65 (Is there any way to detect drag start and drag end)
- Fixed some other minor bugs
- [Important] Updated to support-v7-recyclerview v22.2.0
- Fixed issue #44 (Click effect on GroupView)
- Fixed issue #50 (CPU usage 30-40% while Idle)
- Merged pull request #55 (Makes ItemAnimators more easily extensible.)
- Removed TestActivity from manifest file
- Added expanded/collapsed status indicators to demo app
[Breaking changes]
- Changed method signatures of SwipeableItemAdapter (commit:
56e0084342f6e86ae26078f7c329368e2a59b92b
) - Changed method signatures of DraggableItemAdapter (commit:
56e0084342f6e86ae26078f7c329368e2a59b92b
)
[Improvements]
- Upgraded support library to v22.1.1
- Fixed issue #3 (ClassCastException bug)
- Fixed issue #13 (Can't set child item draggable range in children group)
- Fixed issue #23 (overscrolling effect)
- Fixed issue #29 (Begin drag and drop using OnLongClick
- Fixed issue #30 (Enhancement to Swiping)
- Merged pull request from @jcamp1 (related to #29, #30)
- Added drag-sortable range configuration feature
- Added new two examples which has sections headers in the list and using new APIs
- Added RecyclerView's event distributor mechanism (no examples yet.)
- Improved JavaDoc comments
- Small bug fixes & improvements
- Added "settle back into place" animation
- Fix wrong destination position bug when moving an child item on certain condition (05c5f0a0db423698599ae2e85436c595f8b7a5c4)
- Small bug fixes
- Fix Android Studio Lint warnings
- Introduced "Expandable item" feature
- Minor bug fixes
- Initial release