来自android开发者(创建列表和卡片):

RecyclerView小部件是一个更高级和灵活的版本 列表视图。

好吧,这听起来很酷,但当我看到这张示例图片时,我真的很困惑这两者之间的区别。

上面的图片可以通过ListView使用自定义适配器轻松创建。

那么,在什么情况下应该使用RecyclerView呢?


当前回答

简单的回答:在想要显示许多项,并且它们的数量是动态的情况下,应该使用RecyclerView。ListView应该只在项目数量总是相同并且受屏幕大小限制的情况下使用。

你会发现这很难,因为你只考虑Android库。

现在有很多选项可以帮助您构建自己的适配器,使您可以轻松地构建动态项目的列表和网格,您可以选择、重新排序、使用动画、分隔符、添加页脚、页眉等等。

不要害怕,给一个尝试RecyclerView,你可以开始喜欢它从一个ListView和一个RecyclerView中从网络下载的100个项目的列表,当你尝试滚动时,你会看到UX(用户体验)的差异,可能测试应用程序会在你甚至可以这样做之前停止。

我建议你检查这两个库来制作简单的适配器:

mikepenz的FastAdapter

davideas的FlexibleAdapter

其他回答

以下是RecyclerView和ListView之间的几个关键点/区别。明智地接电话。

If ListView works for you, there is no reason to migrate. If you are writing a new UI, you might be better off with RecyclerView. RecylerView has inbuilt ViewHolder, doesn't need to implement our own like in listView. It support notify at particular index as well Things like animating the addition or removal of items are already implemented in the RecyclerView without you having to do anything We can associate a layout manager with a RecyclerView, this can be used for getting random views in recycleview while this was limitation in ListView In a ListView, the only type of view available is the vertical ListView. There is no official way to even implement a horizontal ListView. Now using a RecyclerView, we can have a i) LinearLayoutManager - which supports both vertical and horizontal lists, ii) StaggeredLayoutManager - which supports Pinterest like staggered lists, iii) GridLayoutManager - which supports displaying grids as seen in Gallery apps. And the best thing is that we can do all these dynamically as we want.

我用RecyclerView工作了一点,仍然喜欢ListView。

当然,它们都使用ViewHolders,所以这不是一个优势。 RecyclerView在编码方面更加困难。 RecyclerView不包含页眉和页脚,所以它是一个减号。 ListView不需要创建ViewHolder。如果你想要一个带有分段或子标题的列表,那么创建独立的项(没有ViewHolder)是个好主意,这样更容易,也不需要单独的类。

主要优势:

ViewHolder在ListView中默认是不可用的。我们将在getView()中显式地创建。 RecyclerView有内置的Viewholder。

RecyclerView信息

RecyclerView是在Android 5.0 (Lollipop)中引入的。它包含在支持库中。因此,它与Android API Level 7兼容。

与ListView类似,RecyclerView的主要思想是以一种性能友好的方式提供列表功能。这个视图名称中的“Recycler”部分并不是巧合。RecyclerView实际上可以回收它当前正在使用的项目。循环过程是通过一个名为View Holder的模式完成的。

RecyclerView的优点和缺点

优点:

集成的动画添加,更新和删除项目 通过使用ViewHolder模式强制循环视图 同时支持网格和列表 支持垂直和水平滚动 可以和DiffUtil一起使用吗

缺点:

增加了复杂性 没有OnItemClickListener

列表查看信息

ListView在Android诞生之初就已经存在了。它甚至可以在API级别1中使用,它与RecyclerView具有相同的用途。

ListView的用法其实很简单。在这方面,它不像它的后继者。学习曲线比RecyclerView更平滑。因此,它更容易掌握。我们不需要处理LayoutManager, ItemAnimator或DiffUtil之类的东西。

ListView的优点和缺点

优点:

简单的使用 默认的适配器 可用OnItemClickListener 它是expandabelistview的基础

缺点:

没有使用ViewHolder模式

RecyclerView是一个新的ViewGroup,准备渲染任何 以类似的方式创建基于适配器的视图。它应该是 ListView和GridView的继承者,它可以在 最新的support-v7版本。已经开发了RecyclerView 考虑到可扩展性,因此可以创建任何类型的 你能想到的布局,但也不能没有一点恼人的地方 剂量。

安东尼奥·莱瓦的回答

 compile 'com.android.support:recyclerview-v7:27.0.0'

RecyclerView确实是一个比ListView强大的视图。 欲了解更多详情,请访问此页面。