与ListView相比,RecyclerView的优势是什么?

时间:2014-10-26 06:12:04

标签: android listview android-recyclerview

我刚开始使用RecyclerView,我发现它缺少很多功能,如页眉,页脚,分隔符,列表选择器,现在我对使用它而不是ListView有了第二个想法。

与ListView相比,RecyclerView有哪些优缺点? 它能处理比ListView更复杂的视图吗?

到目前为止,我一直在使用ListView,有几次,是时候切换到RecyclerView还是现在太快了?

1 个答案:

答案 0 :(得分:90)

随着Android Lollipop的出现, RecyclerView 正式成功。 RecyclerView更强大,更灵活,是ListView 的主要增强功能。我会尽力给你一个详细的见解。

<强>优点

1)ViewHolder Pattern

在ListView中,建议使用ViewHolder模式,但它绝不是强制性的。对于RecyclerView,使用RecyclerView.ViewHolder类是必需的。这是ListView和RecyclerView之间的主要区别之一。

它使RecyclerView中的事情变得更复杂,但我们在ListView中遇到的许多问题都得到了有效解决。

2)LayoutManager

这是RecyclerView带来的另一项重大改进。在ListView中,唯一可用的视图类型是垂直ListView。甚至没有官方的方法来实现水平ListView。

现在使用RecyclerView,我们可以有一个

i)LinearLayoutManager - 支持垂直和水平列表,

ii)StaggeredLayoutManager - 支持Pinterest,如交错列表,

iii)GridLayoutManager - 支持显示在图库应用中看到的网格。

最棒的是我们可以根据需要动态完成所有这些操作。

3)物品动画师

ListViews缺乏对良好动画的支持,但RecyclerView为它带来了全新的维度。使用RecyclerView.ItemAnimator类,动画视图变得非常简单直观。

4)项目装饰

对于ListViews,动态装饰项目(如添加边框或分隔线)绝非易事。但是在RecyclerView的情况下,RecyclerView.ItemDecorator类可以为开发人员提供巨大的控制权,但会使事情变得更加耗时和复杂。

5)OnItemTouchListener

由于其AdapterView.OnItemClickListener界面,拦截ListView上的项目很简单。但是,RecyclerView通过RecyclerView.OnItemTouchListener为开发人员提供了更多的功能和控制,但它使开发人员的工作变得复杂。

<强>缺点

i)它比列表视图更复杂。

ii)初学者可能需要花费大量时间才能完全理解RecyclerView。

iii)它可能会不必要地使您的编码生活变得困难。

iv)您需要花费更多时间来使用ListView