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

EC8*_*4B4 29 android listview android-recyclerview

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

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

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

Ari*_*Roy 92

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

好处

1)ViewHolder模式

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

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

2)LayoutManager

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

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

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

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

iii)GridLayoutManager - 支持显示在Gallery应用程序中看到的网格.

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

3)物品动画师

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

4)项目装饰

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

5)OnItemTouchListener

由于其AdapterView.OnItemClickListener接口,截取ListView上的项目很简单.但RecyclerView赋予更多的权力和控制它的开发由RecyclerView.OnItemTouchListener但它会使事情变得复杂一点的开发商.

缺点

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

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

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

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