# RecyclerViewAdapter
想了解该框架的可参考以下博客说明:<br />
CSDN:http://blog.csdn.net/lwk520136/article/details/70787798<br />
简书:http://www.jianshu.com/p/c86a39f4e811
### 引用方式
【最新版本号以[这里](https://github.com/Vanish136/RecyclerViewAdapter/releases)为准】 <br />
**由于JCenter关闭服务,从1.4.5版本开始改为发布到MavenCentral,引用方式有更新!!!** <br />
**由于JCenter关闭服务,从1.4.5版本开始改为发布到MavenCentral,引用方式有更新!!!** <br />
**由于JCenter关闭服务,从1.4.5版本开始改为发布到MavenCentral,引用方式有更新!!!** <br />
```
#last-version请查看上面的最新版本号
#只支持AndroidX
#从1.4.5版本开始GroupId、ArtifactId均有更新,请按如下方式引用
implementation "com.lwkandroid.library:rcvadapter:last-version"
```
### 基础功能
- 快速实现适配器,支持多种ViewType模式
- 支持添加HeaderView、FooterView、EmptyView
- 支持滑到底部加载更多
- 支持每条Item显示的动画
- 支持嵌套Section(1.1.0版本新增)
- 支持悬浮标签StickyLayout(1.2.0版本新增)
### 效果图
![](https://github.com/Vanish136/RecyclerViewAdapter/raw/master/pictures/pic01.png) <br />
![](https://github.com/Vanish136/RecyclerViewAdapter/raw/master/pictures/pic02.png) <br />
![](https://github.com/Vanish136/RecyclerViewAdapter/raw/master/pictures/pic03.png) <br />
![](https://github.com/Vanish136/RecyclerViewAdapter/raw/master/pictures/pic04.png) <br />
![](https://github.com/Vanish136/RecyclerViewAdapter/raw/master/pictures/pic05.gif) <br />
### 使用方式
**1. 当Item样式一样时,只需继承`RcvSingleAdapter<T>`即可,示例:**
```
public class TestSingleAdapter extends RcvSingleAdapter<TestData>
{
public TestSingleAdapter(Context context, List<TestData> datas)
{
super(context, android.R.layout.simple_list_item_1, datas);
}
@Override
public void onBindView(RcvHolder holder, TestData itemData, int position)
{
//在这里绑定UI和数据,RcvHolder中提供了部分快速设置数据的方法,详情请看源码
holder.setTvText(android.R.id.text1, itemData.getContent());
}
}
```
<br/>
**2. 当Item样式不一样时,即存在多种`ViewType`类型的Item,需要将每种`ViewType`的Item单独实现,再关联到`RcvMultiAdapter<T>`中,示例:**
```
//第一步:每种Item分别继承RcvBaseItemView<T>
public class LeftItemView extends RcvBaseItemView<TestData>
{
@Override
public int getItemViewLayoutId()
{
//这里返回该Item的布局id
return R.layout.layout_item_left;
}
@Override
public boolean isForViewType(TestData item, int position)
{
//这里判断何时引用该Item
return position % 2 == 0;
}
@Override
public void onBindView(RcvHolder holder, TestData testData, int position)
{
//在这里绑定UI和数据,RcvHolder中提供了部分快速设置数据的方法,详情请看源码
holder.setTvText(R.id.tv_left, testData.getContent());
}
}
//第二步:将所有Item关联到适配器中
public class TestMultiAdapter extends RcvMultiAdapter<TestData>
{
public TestMultiAdapter(Context context, List<TestData> datas)
{
super(context, datas);
//只需在构造方法里将所有Item关联进来,无论多少种ViewType都轻轻松松搞定
addItemView(new LeftItemView());
addItemView(new RightItemView());
}
}
```
<br />
**3.优雅的添加HeaderView、FooterView、EmptyView,只需要在RecyclerView设置LayoutManager后调用相关方法即可:**
```
//要先设置LayoutManager
mRecyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
//添加HeaderView(若干个)
mAdapter.addHeaderView(headerView01,headerView02,headerView03...);
//添加FooterView(若干个)
mAdapter.addFooterView(footerView01,footerView02,footerView03...);
//添加EmptyView(只能设置一个)
//设置了EmptyView后,当数据量为0的时候会显示EmptyView
mAdapter.setEmptyView(emptyView);
或者
mAdapter.setEmptyView(layoutId);
```
<br />
**4.设置滑动到底部自动加载更多,先上示例代码吧:**
**自1.4.3版本开始删除了之前的调用方式**
```
//可以先设置加载样式,继承RcvBaseLoadMoreView实现自定义样式
//不设置的话会使用默认的样式,参考RcvDefLoadMoreView源码
RcvDefLoadMoreView loadMoreView = new RcvDefLoadMoreView.Builder()
.setBgColor(Color.GREEN)
.setTextColor(Color.RED)
.build(this);
mAdapter.setLoadMoreLayout(loadMoreView);
//再开启并设置监听
mAdapter.enableLoadMore(true);
mAdapter.setOnLoadMoreListener(RcvLoadMoreListener listener);
//禁止加载更多,通常用在配合下拉刷新的过程中
mAdapter.enableLoadMore(false);
```
**注:** <br />
① 默认的样式实现是类`RcvDefLoadMoreView` <br />
② 如需自定义样式,只需继承`RcvBaseLoadMoreView`,只要重写各状态UI的实现,无须关心状态切换,可参考`RcvDefLoadMoreView`内的实现方式。
<br />
**5.设置Item显示动画,先直接上代码:**
```
//使用默认的动画(Alpha动画)
mAdapter.enableItemShowingAnim(true);
//使用自定义动画
mAdapter.enableItemShowingAnim(true, ? extends RcvBaseAnimation);
```
**注:** <br />
①默认动画的实现是类`RcvAlphaInAnim` <br />
②自定义样式需要继承`RcvBaseAnimation`,可参考`RcvAlphaInAnim`内部实现。
<br />
**6.设置Item点击监听:**
```
//设置OnItemClickListener
mAdapter.setOnItemClickListener(new RcvItemViewClickListener<TestData>()
{
@Override
public void onItemViewClicked(RcvHolder holder, TestData testData, int position)
{
//onClick回调
}
});
//设置OnItemLongClickListener
mAdapter.setOnItemLongClickListener(new RcvItemViewLongClickListener<TestData>()
{
@Override
public void onItemViewLongClicked(RcvHolder holder, TestData testData, int position)
{
//onLongClick回调
}
});
```
<br />
**7. 添加分割线,直接上代码:**
**1.2.9版本针对分割线进行了重写,原有方法不变,新增支持自定义颜色和部分快速创建的方法:**
```
#适用于LinearLayoutManager
//创建默认竖直排列的分割线
RcvLinearDecoration.createDefaultVertical(Context context);
//创建自定义色值默认竖直排列的分割线
RcvLinearDecoration.createDefaultVertical(int color);
//创建默认水平排列的分割线
RcvLinearDecoration.createDefaultHorizontal(Context context);
//创建自定义色值默认水平排列的分割线
RcvLinearDecoration.createDefaultHorizontal(int color);
//构造方法:默认Drawable分割线
new RcvLinearDecoration(Context context, int orientation);
//构造方法:自定义Drawable分割线
new RcvLinearDecoration(Context context, Drawable drawable, int orientation);
//构造方法:自定义Drawable分割线
new RcvLinearDecoration(Context context, @DrawableRes int drawableResId, int orientation);
//构造方法:自定义Color分割线(宽度或者高度默认1px)
new RcvLinearDecoration(@ColorInt int color, int orientation);
//构造方法:自定义Color分割线
new RcvLinearDecoration(@ColorInt int color, int size, int orientation);
#适用于GridLayoutManager、StaggeredGridLayoutManager
//创建默认分割线
RcvGridDecoration.createDefault(Context context);
//创建自定义色值默认分割线
RcvGridDecoration.createDefault(int color);
//构造方法:默认Drawable的分割线
new RcvGridDecoration(Context context);
//构造方法:自定义Drawable的分割线
new RcvGridDecoration(Context context, Drawable drawable);
//构造方法:自
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
StickyRecyclerview悬停吸附 (162个子文件)
gradlew.bat 2KB
executionHistory.bin 1.41MB
classAnalysis.bin 440KB
fileHashes.bin 133KB
outputFiles.bin 88KB
jarAnalysis.bin 75KB
taskHistory.bin 40KB
sha1-checksums.bin 35KB
md5-checksums.bin 21KB
resourceHashesCache.bin 19KB
last-build.bin 1B
pic05.gif 1.91MB
.gitignore 624B
.gitignore 50B
.gitignore 8B
.gitignore 8B
publish-mavencentral.gradle 5KB
build.gradle 1KB
config-mavencentral.gradle 779B
build.gradle 741B
build.gradle 613B
settings.gradle 40B
gradlew 5KB
RecyclerViewAdapter-master.app.iml 6KB
RecyclerViewAdapter-master.recyclerviewadapter.iml 5KB
RecyclerViewAdapter-master.iml 934B
gradle-wrapper.jar 52KB
RcvMultiAdapter.java 27KB
RcvDefLoadMoreView.java 12KB
RcvStickyLayout.java 12KB
DetailActivity.java 10KB
RcvGridDecoration.java 9KB
RcvLinearDecoration.java 8KB
RcvHolder.java 6KB
RcvItemViewManager.java 5KB
RcvLoadingView.java 5KB
StickyActivity.java 5KB
RcvBaseLoadMoreView.java 5KB
RefreshActivity.java 4KB
TestSectionMultiLabelAdapter.java 4KB
RcvSectionMultiLabelAdapter.java 4KB
MainActivity.java 4KB
TestSectionSingleLabelAdapter.java 3KB
DataModel.java 3KB
RcvSectionSingleLabelAdapter.java 2KB
RcvUtils.java 1KB
RcvBaseItemView.java 1KB
RcvBaseAnimation.java 1KB
DataPresenter.java 1KB
RcvSingleAdapter.java 1KB
RcvSectionWrapper.java 1KB
DataModel.java 1KB
ParamsFlag.java 911B
TestSection.java 772B
TestData.java 763B
TestSingleAdapter.java 688B
RightItemView.java 630B
LeftItemView.java 627B
RcvViewType.java 608B
RefreshConstract.java 599B
TestMultiAdapter.java 502B
RcvAlphaInAnim.java 451B
RcvItemViewLongClickListener.java 310B
RcvItemViewClickListener.java 299B
RcvSectionClickListener.java 277B
RcvLoadMoreListener.java 195B
CallBack.java 179B
LICENSE 11KB
javaCompile.lock 17B
fileHashes.lock 17B
buildOutputCleanup.lock 17B
executionHistory.lock 17B
checksums.lock 17B
README.md 17KB
pic02.png 22KB
pic03.png 21KB
pic04.png 21KB
ic_launcher_round.png 14KB
ic_launcher.png 10KB
ic_launcher_round.png 10KB
pic01.png 9KB
ic_launcher.png 8KB
ic_launcher_round.png 6KB
ic_launcher.png 5KB
ic_launcher_round.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 2KB
ic_launcher.png 2KB
loadmore_success.png 2KB
loadmore_fail.png 1KB
proguard-rules.pro 4KB
proguard-rules.pro 944B
gradle.properties 486B
local.properties 376B
gradle-wrapper.properties 238B
cache.properties 53B
gc.properties 0B
gc.properties 0B
gc.properties 0B
activity_main.xml 6KB
共 162 条
- 1
- 2
温少恒
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0