从ListView过度到RecyclerView,RecyclerView开始使用时感觉还有些烦,但是其性能确实做了很大的优化。一下是个人学习过程中对RecyclerView的学习。作为以后复习回顾的内容。
RecyclerView的使用个人认为主要包括四个方面:
1.布局文件
2.Adapter中实现三个抽象方法
3.ViewHolder中视图的绑定
4.Activity中具体的使用。
使用过程:
1.添加依赖库:
compile 'com.android.support:recyclerview-v7:25.3.1'
2.在要使用的布局中加上组件recyclerview
这是毫无问题的,将<android.support.v7.widget.RecyclerView>放在线性布局中
3.Reclclerview显示的是滚动的内容,每一条内容都应该有一个规范,内容可能是卡片式布局或者其他,里面可能有图片、有文字等。而每一条内容具体要显示什么,当然是自己说了算。所以需要新建一个布局文件,规定自己要显示的内容。
同样是一个线性布局,显示的内容只有两个TextView,其中一个还是作为分割线使用的,但是具体的东西当然可以自己定义了
4.Adapter与ViewHolder的使用
这里可能不同的人有不同的写法。因为我是受了郭霖大神的影响,是将ViewHolder作为Adapter的内部类来实现的。具体说明如下:
首先要建立一个xxxAdapter类继承自RecyclerView.Adapter类,这里继承的时候在继承的类后面还要声明泛型,而泛型就是接下来要写的内部类xxxViewHolder。
在xxxAdapter类中声明xxxViewHolder类,并让该类继承自RecyclerView.ViewHolder类,在该类中必须要重写构造方法,在这个构造方法中,需要完成显示的内容布局组件的绑定。
这里的textView就是我再页面布局中要显示的内容的组件容器。
然后在xxxAdapter的泛型中声明为现在的ViewHolder,这时候需要实现三个抽象方法重写,分别是:
onCreateViewHolder(),onBindViewHolder(),getItemCount(),然后重写一个构造方法,是用来实例化时传入要渲染的数据的。
重写的getItemCount方法是实现记录数的,如下:
重写的onBindViewHolder()是将移动的位置绑定对应数据的
重写的onCreateViewHolder是用来创建ViewHolder实例的,在这里也要完成你显示内容格局的绑定,而且点击事件也在这里完成:
第一句就是要将你的布局格式加入进来。然后创建一个ViewHolder返回。
5、Activity中的使用
为recyclerview设置layoutManager与adapter即可,其中layoutManager可以设置布局格式,比如网格,瀑布流、横向等。