RecycleView是v7中的一个强大的控件,它可以替代ListView,在效果、性能上面更进一步做了优化。下面就让我们看看RecycleView的使用方法。
1、首先新建一个工程,和平时开发一样。
2、导入RecycleView所在的包,如图:
file-->
project structure-->Dependencies-->右边的+号-->Libray dependency-->选择RecycleView所在的包就OK了
到此,布局文件中RecycleView已经准备好了,其实开始和listview差不了多少
3、创建对象
这里必须注意一点,和listview的区别是,RecycleView必须在设置适配器之前,为它设置布局管理器,对于布局管理器的作用可以点击这里进行学习。
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
myAdapter=new MyAdapter();
4、创建适配器(这和ListView有很大区别)
区别:ListView在设置适配器的时候,继承BaseAdapter,并且为了性能优化,必须自定义ViewHolder,而RecycleView则不需要。对于RecycleView的适配器,官方直接将ViewHolder封装了起来。下面看看代码就明白怎么回事了。
class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
//继承RecycleView.Adapter,其中后面是RecyclerView.ViewHolder类型的类。因此,我们就要定义一个继承RecyclerView.ViewHolder类的类作为这个泛型。
/*适配器中有三个需要重写的方法
1、onCreateViewHolder(),这个方法类似BaseAdapter中的getView()方法,不过返回的是一个ViewHolder。2、onBindViewHolder(),这个方法就是讲ViewHolder绑定起来,通过holder来获取holder中的参数
3、getItemCount(),这个方法和BaseAdapter中的getCount一样。
**/
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(RecycleViewAty.this).inflate(R.layout.recycleview_layout_item,parent,false);MyViewHolder myViewHolder=new MyViewHolder(view);return myViewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 11;
}
class MyViewHolder extends RecyclerView.ViewHolder{
public MyViewHolder(View itemView) {
super(itemView);
}
}
}
4、设置适配器
recyclerView.setAdapter(myAdapter);
总结:基本的RecycleView使用就是这个了,大家可能会觉得这个和ListView没有什么区别呀?效果和ListView一样的呀?
这么想,那你就错了,这只是最基本的使用了。对于RecycleView的使用,还有更精彩的部分呢。下面是RecycleView和其他控件的配合使用,可以看一下效果: