从Android API22正式开始,RecolyerView
被添加到V7支持库
中。许多人说它是对listview
的一种增强,并且在Internet上发布了许多关于它用法的简要介绍。但这些文章大多非常简单、浅薄、空洞。增强仅仅是RecyclerView.ViewWholder
、RecyclerView.ItemAnimator
还是RecylerView.SmoothScRoller
?滚动期间项目视图的回收和重用机制
与ListView
不同吗?与listview
相比,recyclerview
的增强
究竟是什么?
任何答案,提示或链接都很感谢。提前道谢。
RecyclerView相对于ListView的增强是什么?
严格地说,recyclerView
不是对listview
的“增强”。listview
实际上执行了某些操作;recyclerview
本身不是。更准确的比较是,RecolyerView
框架是对AdapterView
的改进,并且在某种程度上是ListView
和GridView
的父类AbsListView
的改进。
recyclerView
关注小部件回收和总体子视图
管理。它将所有其他的东西都委托给其他类。AdapterView
在这方面做的要少得多,这使得从功能上进行扩展变得更加困难。
值得注意的是:
>
在recyclerView
的可滚动空间内布局子项的工作委托给管理者。因此,不仅有三个带有recyclerview-v7
(列表、网格、交错网格),还可以为其他场景html" target="_blank">开发其他方案(例如,重叠子级,用于stackview
或gallery
类型的体验)。
来自适配器的更新可以细粒度得多。使用AdapterView
,您几乎必须在任何重要更改时重绘整个视图(例如ListView
及其所有行),特别是在添加和删除项时。recyclerview
适配器中的更新机制指示更改的特定位置。这不仅需要更少的处理时间,而且有助于启用recyclerview
为添加、移动和移除项提供的动画效果(同样使用可插入的替换)。
其他被“烤到”ListView
中的东西,如绘图分隔符,现在被拉到扩展点中,如ItemDecorator
。现在,你可以选择如何“装饰”项目,线分隔或框或彩色条分隔符或什么。装饰并不局限于“分隔符”,而是可以影响视图中的任何东西,因为这样或那样的原因,您认为这些东西与项视图本身是分开的。
不过,recyclerview
执行起来相当复杂。从ListView
“开箱即用”获取的内容需要更多的代码--您的或第三方库的--来匹配。对于有经验的开发人员来说,这是一个特性,因为代码可以被其他代码替换。对于新手来说,这是一个bug,因为对于recyclerview
,IMHO有一个更陡峭的学习曲线。
我读到了关于b/w recyclerview和listview的区别,发现RecyclerViewer比listview更快。 我尝试在线搜索,但没有找到任何令人满意的答案,我知道它使用了ViewHolder模式和通知适配器,但它的内在功能是什么,所以它更快?
为什么到现在LV还没有被弃用或者至少提到RV应该出于性能的原因使用呢?我从来没有使用过RecyclerView,但是它是否复杂得多,以至于有两个视图做本质上相同的事情是值得的?或者也许另有原因?
我正在将RecolyerView的xml项从LinearLayout更改为ConstraintLayout。当我水平滚动recyclerView时,它会滞后,并且呈现速度比LinearLayout慢得多。 约束布局 线性布局
问题内容: 我正在探索,惊讶地发现那没有。 我有两个问题。 主要问题 我想知道为什么删除了? 是否存在性能问题或其他问题? 次要问题 我解决我的问题写我的: 这样可以/有更好的方法吗? 问题答案:
问题内容: 根据Facebook的文件, ListView-一个核心组件,旨在有效显示更改数据的垂直滚动列表。 FlatList-用于呈现简单的平面列表的高性能界面。 看来两者都是有效的。从另一个选择一个时,我们应该考虑什么? 问题答案: FlatList-与ListView相比,性能更高。一旦项目数量增加,ListView呈现速度就会变慢。FlatList显着提高了内存使用率和效率(尤其是对于大
问题内容: 我计划使用P6Spy拦截我们体系结构中的数据库语句。但是,我在P6Spy网站上注意到该软件的最新版本是在2003年。有没有更好的选择,还是我应该坚持使用P6Spy? 问题答案: 我们仍将P6Spy与带有EJB2.0的Weblogic 8.1.5结合使用,并且具有一定的魅力。我将尝试将其与Weblogic 10.3和EJB3.0集成