Mus*_*eel 142 performance android listview android-recyclerview
我最近遇到了RecycleViewAndroid 5.0发布的android ,它似乎RecycleView只是一个封装的传统ListView,其中包含了ViewHolder模式,它促进了视图的重用,而不是每次都创建它.
使用的其他好处是RecycleView什么?如果两者在性能方面具有相同的效果,为什么会选择使用RecycleView`?
编辑
我发现人们提出了类似的问题并且答案没有定论,在这里添加它们以保存记录.
我们应该使用RecyclerView来取代ListView吗?
为什么RecyclerView没有onItemClickListener()?和RecyclerView如何与Listview不同?
Ari*_*Roy 282
随着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但它会使事情变得复杂一点的开发商.
简单来说,RecyclerView比ListView更具可定制性,并为开发人员提供了大量的控制和能力.
小智 10
使用的另一个好处RecycleView是动画,它可以用两行代码完成
RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
recyclerView.setItemAnimator(itemAnimator);
Run Code Online (Sandbox Code Playgroud)
但是窗口小部件仍然是原始的,例如,您无法创建页眉和页脚.
好吧,我挖这么点点发现比尔飞利浦这些宝石的文章上RecycleView
RecyclerView可以做的不仅仅是ListView,但RecyclerView类本身的责任要少于ListView.开箱即用,RecyclerView不会:
- 在屏幕上定位项目
- 动画视图
- 处理除滚动之外的任何触摸事件
所有这些东西都被用于ListView,但RecyclerView使用协作者类来代替这些工作.
您创建的ViewHolders也更加强大.它们是子类
RecyclerView.ViewHolder,它有一堆方法RecyclerView用途.ViewHolders知道他们目前所处的位置,以及哪些项目ID(如果有的话).在这个过程中,ViewHolder已被封为爵士.它曾经是ListView的工作,可以保持整个项目视图,并且ViewHolder只保留它的一小部分.现在,ViewHolder在该
ViewHolder.itemView字段中保留所有内容,这是在ViewHolder的构造函数中为您分配的.
| 归档时间: |
|
| 查看次数: |
95173 次 |
| 最近记录: |