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);            }        }    }