1.在build.gradle配置文件中 引入
compile 'com.android.support:recyclerview-v7:23.2.1' 即可食用RecyclerView组件
2.创建一个RecyclerView的适配器
* public class MyAdapter extends RecyclerView.Adapter<MyViewHolder>
* 创建一个ViewHolder类来支持RecyclerViewAdapter的泛型支持
* 在RecyclerView中重点方法
onBindViewHolder() 绑定一个ViewHolder
onCreateViewHolder() 创建一个ViewHolder
注:传统的BaseAdapter会在getView() 中去创建ViewHolder 和对应的View去进行赋值, 而在RecyclerView.Adapter中
将这个过程分为了两步,由这两个方法实现创建ViewHolder和给View赋值 , 可见谷歌已经开始强制开发者使用ViewHolDer模式了。
3.RecyclerView中关键方法实现
*
// 创建ViewHolder的方法具体实现public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.recycler_item,parent,false); MyViewHolder viewHolder = new MyViewHolder(view); return viewHolder; }
//绑定数据源方法专注数据加载
public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(datas.get(position)); }
//内部类ViewHolder
class MyViewHolder extends RecyclerView.ViewHolder{ TextView tv; //进行初始化 public MyViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.id_tv); } }4.RecyclerView 的一些属性
* 设置RecyclerView的显示 类型
通过加载适配器和数据之后,如果想显示成ListView的样子就必须进行一下操作
创建一个线性布局管理者,通过初始化构造时,构造为纵向布局,在将布局管理者set 即可完成LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false); mRecyclerView.setLayoutManager(linearLayoutManager);* 设置RecyclerView的分割线背景
//设置RecyclerView的Item的分割线
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL_LIST));
5. 通过setLayoutManager来管理布局的显示,达到RecyclerView的真正强大之处!//ListView显示模式
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//GridView显示模式 mRecyclerView.setLayoutManager(new GridLayoutManager(this,3));//水平的GridView显示模式 mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(5,StaggeredGridLayoutManager.HORIZONTAL));//瀑布流式显示模式
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));
6.总结
* 通过LayoutManager 来实现 ListView GridView ,横向的ListView,GridView , 瀑布流的布局
* 通过ItemDecoration 来实现分隔线 实现的原理和如何定制
* ItemAnimator动画的使用
* 手动在Adapter中提供 Item click 和 Item OnClick 回调