当前位置: 首页 > 知识库问答 >
问题:

RecyclerView比ListView有什么增强?

董翰池
2023-03-14

从Android API22正式开始,RecolyerView被添加到V7支持库中。许多人说它是对listview的一种增强,并且在Internet上发布了许多关于它用法的简要介绍。但这些文章大多非常简单、浅薄、空洞。增强仅仅是RecyclerView.ViewWholderRecyclerView.ItemAnimator还是RecylerView.SmoothScRoller?滚动期间项目视图的回收和重用机制ListView不同吗?与listview相比,recyclerview增强究竟是什么?

任何答案,提示或链接都很感谢。提前道谢。

共有1个答案

岳风畔
2023-03-14

RecyclerView相对于ListView的增强是什么?

严格地说,recyclerView不是对listview的“增强”。listview实际上执行了某些操作;recyclerview本身不是。更准确的比较是,RecolyerView框架是对AdapterView的改进,并且在某种程度上是ListViewGridView的父类AbsListView的改进。

recyclerView关注小部件回收和总体子视图管理。它将所有其他的东西都委托给其他类。AdapterView在这方面做的要少得多,这使得从功能上进行扩展变得更加困难。

值得注意的是:

>

  • recyclerView的可滚动空间内布局子项的工作委托给管理者。因此,不仅有三个带有recyclerview-v7(列表、网格、交错网格),还可以为其他场景html" target="_blank">开发其他方案(例如,重叠子级,用于stackviewgallery类型的体验)。

    来自适配器的更新可以细粒度得多。使用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集成