RecyclerView使用

来源:互联网 发布:c语言刷题网站 编辑:程序博客网 时间:2024/04/27 01:36
依赖(删除掉自带的v7包):
compile 'com.android.support:mediarouter-v7:25.0.0'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'

RecyclerView基本可以完全替代之前的listView和gridView,在完成依赖之后,就可以在布局文件中写入v7包下的recyclerView,与listView类似,依然是通过适配器进行数据与布局的绑定,在介绍适配器之前,还有几个重要的方法需要我们进行设置。
因为recyclerView是只对view进行回收,所以很多东西需要我们自己定义,这也成就了它的多功能与丰富的UI界面。
mRecyclerView.setLayoutManager();//给RecyclerView添加布局管理器
这个设置非常重要,其值决定了RecyclerView展现view的方式。
常用属性值有:
new LinearLayoutManager(this)//参数为上下文环境,这个是简单的listView
new GridLayoutManager(this,2)//这个是gridView,第二个参数决定了一行显示几个
new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.HORIZONTAL||VERTICAL)
//这个最牛逼,第一个参数决定了一个单位长度显示几个,单位长度就是由后面的参数决定的,长度,或者宽度。

最后一个适配器需要我们继承RecyclerView.Adapter来实现,在之前写listView的时候我们需要自己定义一个viewHolder而在这里,我们需要自己创建一个类来继承官方提供的ViewHolder,实现无参构造,在构造方法中参数就是我们绑定的view视图,只要实例化我们的这个holder就会传递进来一个view视图通过它获得我们Item布局文件的上的控件

在onCreateViewHolder方法中,将返回值类型修改为我们自定义ViewHolder的类型,在这个方法中,我们创建一个自定义ViewHolder类的对象,然后将它返回,供其他方法使用,同样此时将我们继成的Adapter后面的泛型也写成这个类。

在onBindViewHolder方法中,通过holder参数,和position数据的位置,将数据和控件进行绑定。
最后一个getItemCount()方法就不说了。
至此,RecyclerView的适配器就配置完毕了,疏通一遍之后,大概也了解了它的执行过程,
首先会执行onCreateViewHolder方法,这里会创建我们自定义的viewHolder,并通过参数获得我们的子view视图,作为参数传递到holder对象当中,然后会将holder对象返回,供其他方法使用。
然后通过getItemCount得到条目数量
接着不断的执行onBindViewHolder,通过holder参数和position位置,对数据与控件进行绑定。

下面是
参考博客(鸿洋):http://blog.csdn.net/lmj623565791/article/details/45059587

原创粉丝点击