github源码
https://github.com/chengxingyao/BindRecyclerView
在project build.gradle中添加 maven 地址
allprojects {
repositories {
jcenter()
maven { url "https://raw.githubusercontent.com/chengxingyao/maven/master/" }
}
}
dependencies {
compile "cn.chengxingyao:bindrecyclerview:0.1"
}
该控件下拉刷新 上拉加载继承的是BGARefreshLayout,详细参考https://github.com/fengmaolian/AnalyzeRecyclerViewWithBGARefreshLayout
XRecyclerViewAdapter adapter = mXRecyclerView.getAdapter();//获取adapter
adapter.bindHolder(new TestHolder());// 绑定第一个 holder
adapter.bindHolder(new Test2Holder());// 绑定第二个holder
//设置第一个holder 的数据
List list=new ArrayList();
list.add(1);
list.add(1);
list.add(1);
adapter.setData(0,list);
adapter.setData(1,list); //设置第二个holder
holder 定义
public class TestHolder extends IViewHolder {
@Override
protected XViewHolder create(View view, RecyclerView.Adapter adapter) {
//返回一个实际的holder
return new Holder(view, adapter);
}
@Override
public int getLayout() {
//holder 的 layout
return R.layout.test;
}
//实际的holder类
class Holder extends XViewHolder<Integer> {
protected TextView tvName;
public Holder(View itemView, RecyclerView.Adapter adapter) {
super(itemView, adapter);
}
//默认会触发点击holder 的点击事件
@Override
public void onClick(View v) {
}
//初始化view
@Override
protected void initView(View rootView) {
tvName = (TextView) rootView.findViewById(R.id.tv_name);
}
//绑定数据 ,adapter 中会调用
@Override
protected void onBindData(Integer itemData) {
tvName.setText("aaaa" + itemData);
}
}
}
网友评论