来自android开发者(创建列表和卡片):
RecyclerView小部件是一个更高级和灵活的版本 列表视图。
好吧,这听起来很酷,但当我看到这张示例图片时,我真的很困惑这两者之间的区别。
上面的图片可以通过ListView使用自定义适配器轻松创建。
那么,在什么情况下应该使用RecyclerView呢?
来自android开发者(创建列表和卡片):
RecyclerView小部件是一个更高级和灵活的版本 列表视图。
好吧,这听起来很酷,但当我看到这张示例图片时,我真的很困惑这两者之间的区别。
上面的图片可以通过ListView使用自定义适配器轻松创建。
那么,在什么情况下应该使用RecyclerView呢?
当前回答
In my opinion RecyclerView was made to address the problem with the recycle pattern used in listviews because it was making developer's life more difficult. All the other you could handle more or less. For instance I use the same adapter for ListView and GridView it doesn't matter in both views the getView, getItemCount, getTypeCount is used so it's the same. RecyclerView isn't needed if ListView with ListAdapter or GridView with grid adapters is already working for you. If you have implemented correctly the ViewHolder pattern in your listviews then you won't see any big improvement over RecycleView.
其他回答
简单的回答:在想要显示许多项,并且它们的数量是动态的情况下,应该使用RecyclerView。ListView应该只在项目数量总是相同并且受屏幕大小限制的情况下使用。
你会发现这很难,因为你只考虑Android库。
现在有很多选项可以帮助您构建自己的适配器,使您可以轻松地构建动态项目的列表和网格,您可以选择、重新排序、使用动画、分隔符、添加页脚、页眉等等。
不要害怕,给一个尝试RecyclerView,你可以开始喜欢它从一个ListView和一个RecyclerView中从网络下载的100个项目的列表,当你尝试滚动时,你会看到UX(用户体验)的差异,可能测试应用程序会在你甚至可以这样做之前停止。
我建议你检查这两个库来制作简单的适配器:
mikepenz的FastAdapter
davideas的FlexibleAdapter
除了以上差异之外,还有以下几个:
RV separates view creation and binding of data to view. In LV, you need to check if convertView is null or not for creating view, before binding data to it. So, in case of RV, view will be created only when it is needed but in case of LV, one can miss the check for convertview and will create view everytime. Switching between Grid and List is more easy now with LayoutManager. No need to notify and update all items, even if only single item is changed. One had to implement view caching in case of LV. It is provided in RV by default. (There is difference between view caching n recycling.) Very easy item animations in case of RV.
RecyclerView是一个新的ViewGroup,准备渲染任何 以类似的方式创建基于适配器的视图。它应该是 ListView和GridView的继承者,它可以在 最新的support-v7版本。已经开发了RecyclerView 考虑到可扩展性,因此可以创建任何类型的 你能想到的布局,但也不能没有一点恼人的地方 剂量。
安东尼奥·莱瓦的回答
compile 'com.android.support:recyclerview-v7:27.0.0'
RecyclerView确实是一个比ListView强大的视图。 欲了解更多详情,请访问此页面。
我只是想强调RecyclerView是兼容包的一部分。这意味着每个应用程序都有自己的RecyclerView实现,而不是使用来自操作系统的特性和代码。潜在地,类似RecyclerView的功能可以成为未来操作系统的一部分,从那里使用它是有益的。例如,Harmony OS很快就会发布。将来可以更改兼容性包许可证,这可能是一种暗示。缺点总结:
许可 更大的足迹,尤其是作为许多应用程序的一部分 如果一些来自操作系统的功能可以存在,那么效率就会下降
但值得注意的是,一些功能的实现,如滑动项目,来自RecyclerView。
以上所说的一切都必须加以考虑。
我用RecyclerView工作了一点,仍然喜欢ListView。
当然,它们都使用ViewHolders,所以这不是一个优势。 RecyclerView在编码方面更加困难。 RecyclerView不包含页眉和页脚,所以它是一个减号。 ListView不需要创建ViewHolder。如果你想要一个带有分段或子标题的列表,那么创建独立的项(没有ViewHolder)是个好主意,这样更容易,也不需要单独的类。