android-advancedrecyclerview
android-advancedrecyclerview copied to clipboard
RecyclerView extension library which provides advanced features. (ex. Google's Inbox app like swiping, Play Music app like drag and drop sorting)
Advanced RecyclerView
This RecyclerView extension library provides Google's Inbox app like swiping, Play Music app like drag-and-drop sorting and expandable item features. Works on API level 14 or later.
Documentation site: https://advancedrecyclerview.h6ah4i.com/
Download the example app

Demonstration video on YouTube

Target platforms
- API level 14 or later
Latest version
- Version 1.0.0 (December 16, 2018) (RELEASE NOTES)
Recent Breaking Change Info
-
v1.0.0:
- Migrated to AndroidX (Use v0.11.0 instead if your project uses support libraries)
-
BaseWrapperAdapter
- Removed some deprecated features
-
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
:point_right: Migration guide from v0.11.0 to v1.0.0
Getting started
This library is published on Maven Central. Just add these lines to build.gradle
.
repositories {
+ mavenCentral()
}
dependencies {
+ implementation 'com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:1.0.0'
}
Please check the Getting Started section on the official documentation site for more details.
Examples
Please check the implementation of the simple examples.
Drag & Drop related examples
- Basic
- Minimal
- Draggable grid
- Draggable staggered grid
- Draggable with section
- Drag on Long press
- Uses onCheckCanDrop()
Expandable item related examples
- Basic
- Minimal
- Add & Remove item
- Already expanded groups
Swipeable related examples
- Basic
- Minimal
- Swipeable with button
- Vertical
- Viewpager
- Swipe on long press
Headers and Footers examples
- Minimal
- Expandable with Header/Footer
- Add & Remove Header/Footer items
WrapperAdapter examples
- Composition of All Features
- Insertion items
- Filtering items
Hybrid examples
- Draggable & Swiping
- Draggable & Swiping with section
- Expandable & Draggable & Swiping
Other examples
iOS Mail app like swipe action

License
This library is licensed under the Apache Software License, Version 2.0.
See LICENSE
for full of the license text.
Copyright (C) 2015 Haruki Hasegawa
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.