美文网首页
RecyclerView浅析

RecyclerView浅析

作者: 弘静 | 来源:发表于2017-05-14 21:48 被阅读16次

RecyclerView是Android 5.X中新增在support-v7架包中的新组件,同时也是作为ListView和GridView的升级,可以更加方便和高效地实现ListView和GridView,Staggered。它在官方API的描述如下:Class Overview A flexible view for providing a limited window into a large data set.与此前的ListView 相比,RecyclerView不仅可以回收复用Item,在这边所有有关布局,绘制,数据绑定等都被分拆成不同的类进行管理,而且已经封装好了ViewHolder,开发者只需实现自己所需的ViewHolder()即可。

RecyclerView可以极简的实现不同的布局效果,大概可分为以下三种:线性布局效果,网格布局效果和瀑布流布局效果;其根本就是在于RecyclerView的布局管理器RecyclerView.LayoutManeger,通过一个setLayoutManager()方法为RecyclerView设置布局效果,同时可通过ItemDecoration()设置item之间的分隔线,ItemAnimation()设置动画效果。

1.RecyclerViewAdapter类的实现

要使用RecyclerView必须先实现RecyclerView的数据适配器来加载数据,将数据与每个Item界面进行绑定,一般的实现代码如下:public class RecyclerViewAdapter  extends  RecyclerView.Adapter<RecyclerViewAdapter.RecyclerViewHolder>,其中RecyclerViewHolder是我们自己实现ViewHolder,继承自RecyclerView.ViewHolder,在RecyclerViewHolder实例化我们需要的控件,并且可为控件设置必要的监听事件(必须implements View.OnClickListener)。由于RecyclerView并未没有监听事件的接口,所以需要我们自定义接口回调机制,创建一个监听事件接口,模板代码如下:

public interface OnItemClickListener {

voidonItemClick(View view, intposition);

voidonItemLongClick(View view, intposition);

}

public OnItemClickListener onItemClickListener;

public void setOnItemClickListener(OnItemClickListener  onItemClickListener) {

this.onItemClickListener= onItemClickListener;

}

实现必要的监听事件后,还需重写RecyclerView的几个方法:

public int getItemCount(){

return mData.size();

}

public ViewHolder onCteateViewHolder(ViewGroup viewGroup, int position){

View view = LayoutInflate.from(ViewGroup.getContext()).inflate(R.layout.xxx, viewGroup, false);

return new ViewHolder(view);

}

public void onBindViewHolder(ViewHolder viewHloder, int position){

viewHloder.textView.set(" ");

}

PPS:监听事件也可在onBindViewViewHolder()中实现,不过在实现ViewHolder时不必实现点击事件的接口。监听事件的逻辑代码直接写在onBindViewViewHolder()即可。




相关文章

  • Android ListView 与 RecyclerView

    Android ListView 与 RecyclerView 对比浅析:缓存机制 【备注】只用于个人收藏

  • RecyclerView回收复用机制浅析

    RecyclerView回收复用机制浅析 RecyclerView 基本上已经成为了开发中常用的一个组件,通过其提...

  • RecyclerView浅析

    A flexible view for providing a limited window into a lar...

  • RecyclerView浅析

    1、简介:可以把它看作是ListView、GridView等的包装产品,可以轻松实现上述俩的功能,并能用简单的co...

  • RecyclerView浅析

    RecyclerView是Android 5.X中新增在support-v7架包中的新组件,同时也是作为ListV...

  • 复习

    RecyclerView的缓存机制bitmap 优化性能优化view 的绘制流程浅析LRUCache原理(Andr...

  • Android RecyclerView 源码浅析

    OverView RecyclerView是Android5.0推出的新组件,可以认为是更加灵活强大的ListVi...

  • RecyclerView动画源码浅析

    本文是RecyclerView源码分析系列第四篇文章,内容主要是基于前三篇文章来叙述的,因此在阅读之前推荐看一下前...

  • RecyclerView 和 ListView 对比浅析

    一、背景 RecyclerView是谷歌官方出的一个用于大量数据集(或频繁更改的数据)列表展示的新控件,可以用来代...

  • Listview与RecyclerView对比浅析

    RecyclerView和ListView都是用于加载大量数据的控件,RecyclerView作为listview...

网友评论

      本文标题:RecyclerView浅析

      本文链接:https://www.haomeiwen.com/subject/birysttx.html