一、RecycleView简要介绍
RecycleView是support-v7包中的新组件,是一个强大的滑动组件。相比于ListView和GridView具有很多让开发者喜欢的优点,如:数据绑定,Item的创建和View的回收复用机制等。但RecycleView更加高级灵活,当我们数据因为用户事件或者网络事件发生改变的时候也能很好的进行显示。RecycleView最主要的特点就是复用。
二、RecycleView与ListView区别
RecycleView是ListView的升级版,与经典的ListView相比,同样具有item的回收复用功能。
1.RecycleView封装了ViewHolder的回收复用,标准化了ViewHolder,编写Adapter面向的是ViewHolder,而不是View,高度解耦,复用的逻辑被封装,给编写代码带来更大的方便。
2.RecycleView提供了一种插拔式的体验,高度解耦,异常灵活,为了来控制item的显示,RecycleView针对一个Item的显示专门抽取了相应的类,使其扩展性非常强。
3.可以控制Item增减动画,可以通过ItemAnimation来进行控制。当然,RecycleView有其自己默认的实现方式。
4.使用LayoutManager来确定每一个item的排列方式。
5.在使用RecycleView之前,需要继承RecycleView.Adapter适配,将数据与每个item进行绑定。
6.利用LayoutManager确定每一个item如何摆放、何时展示与隐藏。或者回收复用View的时候,LayoutManager回想适配器请求新的数据来替换以前的数据,该机制避免了创建过多的View和频繁调用Id方法。
三、Recycle基本用法
1.在项目gradle下添加依赖。
compile 'com.android.support:recyclerview-v7:25.0.1'
2.实现RecycleView布局。
<android.support.v7.widget.RecyclerView
android:id="@+id/id_recyclerview"
android:divider="#ffff0000"
android:dividerHeight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3.设置布局管理器。布局主要有三种实现方式,本文采用流式布局进行解析。
mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //线性布局
mRecyclerView.setLayoutManager(new GridLayoutManager(this, 4)); //网格
mRecyclerView.setLayoutManager(new
StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL)); //流式布局
4.设置Adapter与ViewHolder进行事件绑定。
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
ViewGroup.LayoutParams l