https://github.com/bobomee/recyclerviewhelper
RecyclerView ItemSelect,ItemClick,Expandable, Paginate... | RecyclerView的Item的点击,选中,分页 和 无限分组功能...
https://github.com/bobomee/recyclerviewhelper
expandablerecyclerview fastscroll-recyclerview itemtouchhelper paginate recyclerview
Last synced: 8 months ago
JSON representation
RecyclerView ItemSelect,ItemClick,Expandable, Paginate... | RecyclerView的Item的点击,选中,分页 和 无限分组功能...
- Host: GitHub
- URL: https://github.com/bobomee/recyclerviewhelper
- Owner: BoBoMEe
- Created: 2016-01-20T13:57:35.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-06-18T09:59:07.000Z (almost 9 years ago)
- Last Synced: 2025-07-12T09:39:01.765Z (11 months ago)
- Topics: expandablerecyclerview, fastscroll-recyclerview, itemtouchhelper, paginate, recyclerview
- Language: Java
- Homepage:
- Size: 2.68 MB
- Stars: 20
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
RecyclerViewHelper
============
Android library for easy to use `RecyclerView`
- Paginate : Paginate for RecyclerView
- ItemClick : Item Click for RecyclerView
- Expandable : Expandable for RecyclerView
- FastSmoothScroll : SmoothScroll speed scroll for RecyclerView
# Screenshot

# Setup
Gradle:
```groovy
compile 'com.bobomee.android:recyclerviewhelper:1.0.8'
```
# Usage
- Paginate :[PaginateFragment](https://github.com/BoBoMEe/RecyclerViewHelper/blob/master/app/src/main/java/com/bobomee/android/recyclerviewhelperdemo/fragment/PaginateFragment.java)
- ItemClick :[ItemClickFragment](https://github.com/BoBoMEe/RecyclerViewHelper/blob/master/app/src/main/java/com/bobomee/android/recyclerviewhelperdemo/fragment/ItemClickFragment.java)
- Expanable :[ExpandRecyclerFragment](https://github.com/BoBoMEe/RecyclerViewHelper/blob/master/app/src/main/java/com/bobomee/android/recyclerviewhelperdemo/fragment/ExpandRecyclerFragment.java)
- FastScroll : [FastScrollFragment](https://github.com/BoBoMEe/RecyclerViewHelper/blob/master/app/src/main/java/com/bobomee/android/recyclerviewhelperdemo/fragment/FastScrollFragment.java)
# Sample
## Click Mode
```java
ItemClickSupport itemClickSupport = ItemClickSupport.from(recyclerView).add();
itemClickSupport.addOnItemClickListener(new ItemClick.OnItemClickListener() {
@Override public void onItemClick(RecyclerView parent, View child, int position, long id) {
mToast.setText("Item clicked: " + position);
mToast.show();
mBaseRecyclerAdapter.delete(position);
}
});
itemClickSupport.addOnItemLongClickListener(new ItemLongClick.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(RecyclerView parent, View child, int position, long id) {
mToast.setText("Item long pressed: " + position);
mToast.show();
return false;
}
});
```
## Expandable
```java
mRoot = new ArrayList<>();
TreeNode genre = new TreeNode(new Genre("Jazz", R.drawable.ic_saxaphone);
genre.addChilds(TreeNode ...);
//...
mRoot.add(genre);
TreeViewAdapter treeViewAdapter =
new TreeViewAdapter(mRoot, Arrays.asList(new ArtistViewBind(), new GenreViewBinder()));
rv.setAdapter(treeViewAdapter);
treeViewAdapter.addExpandCollapseListener(new ExpandCollapseListener() {
@Override public void onGroupExpanded(RecyclerView.ViewHolder _holder, TreeNode _treeNode) {
//...
}
@Override public void onGroupCollapsed(RecyclerView.ViewHolder _holder, TreeNode _treeNode) {
//..
}
@Override public void toggle(RecyclerView.ViewHolder _holder, TreeNode _treeNode) {
//ToastUtil.show(getActivity(),"toggle");
}
});
treeViewAdapter.addOnTreeNodeClickListener(new OnTreeNodeClickListener() {
@Override public void onClick(TreeNode node, RecyclerView.ViewHolder holder) {
//ToastUtil.show(getActivity(), "addOnTreeNodeClick");
}
});
```
## Fastscroller
```java
mRecyclerView.setAdapter(mItemAdapter);
RecyclerFastScroller fastScroller = (RecyclerFastScroller) view.findViewById(R.id.fast_scroller);
fastScroller.setBubbleTextCreator(mItemAdapter);
fastScroller.setRecyclerView(mRecyclerView);
fastScroller.addOnScrollStateChangeListener(this);
int color = getColorAccent(mActivity);
fastScroller.setAccentColor(color);
```
## Scroll Speed Control
```java
//#TopSnappedSmoothScroller#calculateSpeedPerPixel
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return MILLISECONDS_PER_INCH / displayMetrics.densityDpi;
}
// smoothscroll
mRecyclerView.setLayoutManager(
new SmoothScrollStaggeredLayoutManager(mActivity,2, StaggeredGridLayoutManager.VERTICAL));
mFloatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
mRecyclerView.smoothScrollToPosition(0);
}
});
```
## Paginate
```java
Paginate.Callbacks callbacks = new Paginate.Callbacks() {
@Override
public void onLoadMore() {
// Load next page of data (e.g. network or database)
}
@Override
public boolean isLoading() {
// Indicate whether new page loading is in progress or not
return loadingInProgress;
}
@Override
public boolean hasLoadedAllItems() {
// Indicate whether all data (pages) are loaded or not
return hasLoadedAllItems;
}
};
```
Thanks&Links
--------
- [MarkoMilos/Paginate](https://github.com/MarkoMilos/Paginate)
- [lucasr/twoway-view](https://github.com/lucasr/twoway-view/)
- [TellH/RecyclerTreeView](https://github.com/TellH/RecyclerTreeView)
- [davideas/FlexibleAdapter](https://github.com/davideas/FlexibleAdapter)