为了账号安全,请及时绑定邮箱和手机立即绑定

“回收视图”与“列表视图”

“回收视图”与“列表视图”

缥缈止盈 2019-07-06 14:56:57
“回收视图”与“列表视图”来自Android开发者(创建列表和卡片):ReccyclerView小部件是ListView的一个更高级和更灵活的版本。好吧,听起来很酷,但是当我看到这张图片的时候,我真的很困惑这两者之间的区别。上面的图片可以很容易地由ListView使用自定义适配器。那么,在什么情况下应该使用RecyclerView?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

要使列表视图具有良好的性能,您将需要实现Holder模式,这很容易造成混乱,特别是当您希望用几种不同的视图填充列表时。

“回收视图”将这一模式纳入其中,使其更难搞砸。它也更灵活,更容易处理不同的布局,而不是直线的,就像网格一样。


查看完整回答
反对 回复 2019-07-06
?
波斯汪

TA贡献1811条经验 获得超4个赞

ListView是他的祖先RecyclerView..有很多事情ListView不是没有做,就是没有做好。如果你要收集ListView通过将问题抽象到不同的领域来解决这个问题,你最终会得到类似于回收商的观点。下面是清单视图的主要问题点:

  • 没有强制执行View对于相同的项类型重用(请参阅ListView,如果您研究getView方法,您将发现没有什么可以阻止程序员为每一行创建一个新视图,即使一个视图是通过convertView变量)

  • 没有阻止昂贵的findViewById使用(即使您正在回收视图,如前所述,开发人员也有可能调用findViewById若要更新子视图的显示内容,请执行以下操作。的主要目的ViewHolder花纹ListViews缓存findViewById打电话。然而,只有当您知道这一点,因为它根本不是平台的一部分时,这才是可用的)

  • 只支持行显示视图的垂直滚动(回收器视图不关心视图的放置位置和移动方式,它被抽象为LayoutManager..因此,回收器可以支持传统的ListView如上所示,以及类似于GridView,但它并不局限于此,它可以做更多的事情,但是您必须做编程的基础工作才能实现这一点)。

  • 添加/删除动画不是考虑的用例。这完全取决于你如何解决这个问题(比较一下“回收视图”)。适配器类通知*方法提供v.ListViews以获得一个想法)。

总之RecyclerView是一种更灵活的方法。ListView,尽管您可能需要进行更多的编码。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 339 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信