哪个更适合用来显示聊天消息?据我所知,RecyclerView支持更多的自定义视图方向(通常被认为是性能优越的),但由于聊天本质上是列表式的,使用ListView会更好吗?
对于这个用例,它是否会产生很大的不同?
谢谢!
答案 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来避免滚动期间遇到的问题。
再循环视图比列表视图还有更多优点