(一) 超简单自定义上下刷新布局-LtRecyclerView v2.x版本(基本使用)
(二) LtRecyclerView v2.x (更多实用方法)
(三) LtRecyclerView v2.x (自定义刷新View)
1.设置上拉加载和下拉刷新和回调
rv.setOnUpAndDownListener(new OnUpAndDownListener() {
@Override
public void up() {
//上拉加载时的回调
}
@Override
public void down() {
//下拉刷新时的回调
}
});
//禁用上拉加载:传一个什么都没有的View
new LtAdapter(new View(this));
//禁用下拉刷新:获取刷新View,并设置为不可用
rv.getRefreshLayout().setEnabled(false);
2.设置条目点击事件和条目长按事件(在onLtBindViewHolder()方法中设置点击或长按事件优先级大于该方法)
adapter.setOnRvItemClickListener(new OnRvItemClickListener() {
@Override
public void onItemClick(View itemView, int position) {
//条目的点击事件
}
});
adapter.setOnRvItemLongClickListener(new OnRvItemLongClickListener() {
@Override
public void onItemLongClick(View itemView, int position) {
//条目的长按事件
}
});
3.添加头布局和尾布局
//添加头布局
adapter.addHeadView(new View(this));
//添加头布局到指定位置,注意可能会数组越界异常
adapter.addHeadView(new View(this), 0);
//移除头布局,根据引用地址
adapter.removeHeadView(view);
//移除头布局,根据索引,注意可能会数组越界异常
adapter.removeHeadView(0);
//获取头布局的数量
int headSize = adapter.getHeadListSize();
//添加尾布局(添加到最下面)
adapter.addTailView(new View(this));
//添加尾布局到指定位置,注意可能会数组越界异常
adapter.addTailView(new View(this), 0);
//移除尾布局,根据引用地址
adapter.removeTailView(view);
//移除尾布局,根据索引,注意可能会数组越界异常
adapter.removeTailView(0);
//获取尾布局的数量
int size = adapter.getTailListSize();
4.添加没条目时展示的View(或者添加没条目和有条目时的回调事件)
//设置没数据时展示的TextView
rv.setNoItemText("暂无数据");
//设置没数据时展示的View
rv.setNoItemView(new View(this));
//没有条目时的回调
adapter.addOnNoItemListener(new OnNoItemListener() {
@Override
public void noItem() {
//从有数据变为没有数据时触发
}
@Override
public void haveItem() {
//从没有数据变为有数据是触发
}
});
app:noItemText="暂无数据"//设置没有数据时展示的TextView
app:noItemView="@drawable/ic_launcher"//设置没数据时展示的View
注意:app:noItemText和noItemView两个方法不能同时设置
5.添加分割线(也可以用图片)
//添加2px,d5d5d5的分割线
rv.addItemDecoration_line();
//添加d5d5d5颜色的分割线,并指定高度
rv.addItemDecoration_line(1);
//添加分割线,指定高度和颜色
rv.addItemDecoration_line(1, getResources().getColor(R.color.colorAccent));
//添加图片分割线
rv.addItemDecoration_drawable(R.mipmap.ic_launcher);
//设置分割线高度,可以和颜色一起设置
app:dividerHeight="1dp"
//设置分割线颜色
app:dividerColor="@color/colorAccent"
//设置图片分割线
app:dividerDrawable="@mipmap/ic_launcher"