RecyclerView vs ListView用于聊天应用程序

时间:2017-02-27 09:16:00

标签: android listview android-recyclerview chat

哪个更适合用来显示聊天消息?据我所知,RecyclerView支持更多的自定义视图方向(通常被认为是性能优越的),但由于聊天本质上是列表式的,使用ListView会更好吗?

对于这个用例,它是否会产生很大的不同?

谢谢!

5 个答案:

答案 0 :(得分:4)

RecyclerView是作为ListView改进编写的,所以是的,您可以使用ListView控件创建一个列表,但使用RecyclerView更容易:

滚动时重复使用单元格 - 它在listView适配器中实现View Holder,但它是可选的,而在RecycleView中它是编写适配器的默认方式。

动画常用列表操作 - 动画被解耦并委托给ItemAnimator。

当您需要自定义列表或想要更好的动画时,

RecyclerView 功能强大。 ListView中的这些便捷方法给人们带来了很多麻烦,这就是为什么RecyclerView为他们提供了更灵活的解决方案。

RecyclerView 以增加开发人员的复杂性为代价,为开发人员提供了巨大的力量。在ListView中可以轻松完成某些事情现在可以花费很多不必要的努力。

我认为,如果ListView满足所有用例,则无需用RecyclerView替换它。

答案 1 :(得分:3)

随着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 - 支持显示在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

答案 2 :(得分:0)

是的,Recyclerview是不错的选择。

答案 3 :(得分:0)

Recyclerview是一个更好的选择becoz Recyclerview拥有自己的持有者类,而Recyclerview有许多构建动画。它比listview更容易使用,重量更轻。 You can find recyclerview example here

答案 4 :(得分:0)

Recycler View是更好的选择,因为可以使用View Holder来避免滚动期间遇到的问题。

再循环视图比列表视图还有更多优点