SRecyclerView
来源:互联网 发布:基金规模 知乎 编辑:程序博客网 时间:2024/06/05 11:56
源码:
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);
}@Overridepublic 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); } } }