RecyclerView基本概念

2018-07-25  本文已影响0人  小言聊编程

导语:

RecyclerView是Android 5.0提出的新UI控件,可以用来代替传统的ListView。

Bugly之前也发过一篇相关文章,讲解了 RecyclerView 与 ListView 在缓存机制上的一些区别:

Android ListView 与 RecyclerView 对比浅析--缓存机制

http://mp.weixin.qq.com/s__biz=MzA3NTYzODYzMg==&mid=2653578065&idx=2&sn=25e64a8bb7b5934cf0ce2e49549a80d6&chksm=84b3b156b3c43840061c28869671da915a25cf3be54891f040a3532e1bb17f9d32e244b79e3f&scene=21#wechat_redirect)

基本概念:

RecyclerView是Android 5.0提出的新UI控件,位于support-v7包中,可以通过在build.gradle中添加compile 'com.android.support:recyclerview-v7:24.2.1'导入

为什么出现RecyclerView?

RecyclerView并不会完全替代ListView(这点从ListView没有被标记为@Deprecated可以看出),两者的使用场景不一样。但是RecyclerView的出现会让很多开源项目被废弃,例如横向滚动的ListView, 横向滚动的GridView, 瀑布流控件,因为RecyclerView能够实现所有这些功能。

比如有一个需求是屏幕竖着的时候的显示形式是ListView,屏幕横着的时候的显示形式是2列的GridView,此时如果用RecyclerView,则通过设置LayoutManager一行代码实现替换。

ListView & RecyclerView

1.addHeaderView(), addFooterView()添加头视图和尾视图。

2.通过”android:divider”设置自定义分割线。

3.setOnItemClickListener()setOnItemLongClickListener()设置点击事件和长按事件

这些功能在RecyclerView中都没有直接的接口,要自己实现(虽然实现起来很简单),因此如果只是实现简单的显示功能,ListView无疑更简单。

RecyclerView相比ListView,有一些明显的优点:

默认已经实现了View的复用,不需要类似if(convertView == null)的实现,而且回收机制更加完善。

默认支持局部刷新。

容易实现添加item、删除item的动画效果。

容易实现拖拽、侧滑删除等功能。

RecyclerView是一个插件式的实现,对各个功能进行解耦,从而扩展性比较好。

标准用法:

RecyclerView的标准实现步骤如下:

创建Adapter:创建一个继承RecyclerView.Adapter<VH>的Adapter类(VH是ViewHolder的类名),记为NormalAdapter。

创建ViewHolder:在NormalAdapter中创建一个继承RecyclerView.ViewHolder的静态内部类,记为VH。ViewHolder的实现和ListView的ViewHolder实现几乎一样。

在NormalAdapter中实现:

VH onCreateViewHolder(ViewGroup parent, int viewType): 映射Item Layout Id,创建VH并返回。

void onBindViewHolder(VH holder, int position): 为holder设置指定数据。

int getItemCount(): 返回Item的个数。

可以看出,RecyclerView将ListView中getView()的功能拆分成了onCreateViewHolder()onBindViewHolder()

更多信息查看:(http://www.jianshu.com/p/16712681731e)

上一篇下一篇

猜你喜欢

热点阅读