您的位置:首页 > 其它

RecyclerView

2016-01-19 17:08 204 查看
先翻译一篇高大上的文章

原文在这里

第一眼看Android的RecyclerView

2014年8月14日,Wolfram Rittmeyer

在今年的谷歌I/O大会,谷歌发布了即将到来的Android版本,也就是开发者预览版。较以前的版本,有一个较大的进步,我真的很喜欢谷歌这样做。我想,我们作为开发者和消费者都会得益于谷歌这一决定。

这部分的预览包括俩个view:RecyclerView和 CardView。这里给你一篇文章介绍RecyclerView,这里有许多内部类和接口,他们如何交互,以及如何使用它们。

让我从一个好消息开始介绍:RecyclerView是支持库的一部分。所以你现在可以使用它。OK:你可以用它直到它被抛弃。所以更好的熟悉它

示例项目

截图和视频显示结束的时候,这篇文章的示例项目的行动。你能在github上找到这个示例。记住,RecyclerViewAPI还没有最终确定。谷歌仍可能改变事情,将样品当他们发布最终版本的Android L

这个名字为什么叫RecyclerView ?

这就是在在Android L 预览版中对RecyclerView 的描述:一个灵活的控件用于在有限的窗口中显示大数据集。

所以,当你的项目中有多个同类的视图且不能在用户设备上同时显示时,RecyclerView 就是一个合适的控件。比如,联系人列表,用户列表,音乐文件列表等等。用户上下滑动看到更多的条目,同时离开屏幕时回收和重用。当用户滑动某条目不可见时,这个条目的视图就会被回收,当这个条目重新可见时就会被重用。

下面的屏幕截图是示例项目的说明:左边的图片是示例项目刚启动的时候,当你向上滑动的时候,一些视图被合理的回收,比如右边图片的红色区域,俩个不可见的视图,回收器把它们放到一个列表里,必要的时候会被重用。

视图的回收是非常有用的。你不要重新引用布局使他节省了cpu资源,同时由于不需要保存大量的不可见视图也节省了内存。

现在,你可能会说:这不是一个新的概念,早就有了。你说的是正确的,我们已经使用listview很长时间,就有这样的概念。回收视图这个感念本来就不是一个新的概念。但是,你以前用的listview的外貌,回收,以及其他的所有都是紧密耦合的,谷歌现在的是一个更好的,这就是谷歌开发一个新的RecyclerView的意义。我真的很喜欢谷歌的这种方法。

RecyclerView不关心视图效果

listview是紧密耦合的,谷歌现在采取了一种新的方法,RecyclerView自己本身自己并不关心视图效果,不关心正确位置的元素,不关心任何条目以及任何条目的外观。夸大点来讲,这就是recyclerview的命名的由来。

任何关于布局,绘画的操作,任何跟设置数据集有关的操作,都会交给一个类似插件的类来处理。这样就是使这个新 Recyclerview的API非常灵活。你想要一个布局,使用LayoutManager,你想要不同的动画效果,使用ItemAnimator
等等。

这里有一些用于展示数据的重要类,都是RecyclerView的内部类:

ClassUsage
AdapterWraps the data set and creates views for individual items

包装数据集并为每个单独的条目创建视图
ViewHolderHolds all sub views that depend on the current item’s data

为当前数据集保存子视图
LayoutManagerPlaces items within the available area

把条目视图放到可用的区域
ItemDecorationDraws decorations around or on top of each item’s view

在每个视图上绘制装饰效果
ItemAnimatorAnimates items when they are added, removed or reordered

当条目被添加,移除,重新排序时添加动画效果
在接下来的段落我将简要描述每个类或接口什么,RecyclerView如何使用它。在未来的文章中,我还将讨论其中的一些课程,写他们在细节,向您展示如何定制为您的项目的需要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: