源码:
https://github.com/HzwSunshine/SRecyclerView
!**在源码里有library 导入可用
在 AndroidManifest.xml中 manifest里面添加
<meta-data
android:name="com.hzw.srecyclerviewproject.TestSRVModule"
android:value="SRecyclerViewModule" />
在main方法中写:
刷新适配器的方法:
recyclerView.getAdapter().notifyDataSetChanged();
//可以在xml中配置分割线,也可以在代码中设置分割线
recyclerView.setDivider(Color.LTGRAY, 3, 30, 0);
//这里的适配器使用的一个简易的SRV适配器,同样也可以用于普通的RecyclerView,当然这里也可以用原生的适配器
recyclerView.setAdapter(new SRVAdapter(list));
//如果设置了加载监听,就是需要刷新加载功能,如果没有设置加载监听,那么就没有下拉与底部加载
recyclerView.setLoadListener(new SRecyclerView.LoadListener() {
@Override
public void refresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
refreshData();
recyclerView.refreshComplete();
}
}, 2000);
}
@Override
public void loading() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (list.size() != 30) {
loadData();
recyclerView.loadingComplete();
} else {
recyclerView.loadNoMoreData();
}
}
}, 2000);
}
});
//item的点击事件
recyclerView.setItemClickListener(new SRecyclerView.ItemClickListener() {
@Override
public void click(View v, int position) {
Toast.makeText(getApplication(), “位置: ” + position, Toast.LENGTH_SHORT).show();
if (position == 0) {
recyclerView.startRefresh(true);
}
if (position == 1) {
startActivity(new Intent(MainActivity.this, TestActivity.class));
}
}
基于简易适配器的写法
*/
private static class SRVAdapter extends BaseSRVAdapter {
SRVAdapter(List list) {
super(list, R.layout.item_test);
}@Override public void onBindView(SRVHolder holder, String data, int i) { holder.setTextView(R.id.tv_item_test, data);
// holder.setTextView(0, “123”)
// .setTextView(1, “234”);
}
}
普通适配器:
private class InitAdapter extends RecyclerView.Adapter<InitAdapter.Holder> {
private LayoutInflater inflater;
private ArrayList<Bean> list;
InitAdapter(ArrayList<Bean> list, Context context) {
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = inflater.inflate(R.layout.item_test, parent, false);
return new Holder(v);
}
@Override
public void onBindViewHolder(Holder holder, int position) {
holder.textView.setText(list.get(position).getTitle());
Picasso.with(MainActivity.this).load(list.get(position).getImg()).into(holder.img);
}
@Override
public int getItemCount() {
return list.size();
}
class Holder extends RecyclerView.ViewHolder {
private TextView textView;
private ImageView img;
Holder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.tv_item_test);
img = itemView.findViewById(R.id.img);
}
}
}