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

我们应该使用RecyclerView替换ListView吗?

我们应该使用RecyclerView替换ListView吗?

FFIVE 2019-10-04 15:46:05
Android文档说:RecyclerView小部件是ListView的更高级和灵活的版本。该小部件是一个用于显示大型数据集的容器,可以通过维护有限数量的视图来非常高效地滚动该数据集。当您有数据收集,其元素在运行时根据用户操作或网络事件而变化时,请使用RecyclerView小部件ListView如果效率无关紧要,实际上可以完成上述所有操作,并且当我们RecyclerView用来替换时,我们发现了很多问题ListView:没有用于列表项选择的onItemClickListener()- 解决方案列表项之间没有分隔符- 解决方案没有内置的重叠选择器,单击列表项时没有视觉反馈- 解决方案列表头没有addHeaderView- 解决方案也许更多的问题...因此,当我们使用RecyclerViewreplace时ListView,我们必须做很多额外的编码才能达到与相同的效果ListView。 题:我们完全替换ListView成值得RecyclerView吗?如果不是那么在这种情况下,我们应该更好地利用RecyclerView替代ListView,反之亦然?
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

如果ListView为您工作,则没有理由进行迁移。如果您要编写新的UI,则最好使用RecyclerView。

当您需要自定义列表或想要更好的动画时,RecyclerView是强大的。ListView中的那些便捷方法给人们带来了很多麻烦,这就是为什么RecyclerView为他们提供更灵活的解决方案的原因。

您需要进行的主要更改是在适配器中。如果您想继续通话notifyDataSetChanged,则会失去大部分动画和绑定好处。但是,如果您可以更改适配器以调度详细的通知事件(添加/删除/移动/更新),那么您将获得更好的动画效果和性能。这些事件使RecyclerView选择正确的动画,也有助于避免不必要的onBind调用。如果您的项目视图很复杂,那么您将获得巨大的收益。此外,展望未来,RecyclerView周围还会有更多组件。


查看完整回答
反对 回复 2019-10-04
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

据我说,如果ListView满足您应用程序的所有当前需求并满足所有用例,则无需用RecyclerView替换它。


RecyclerView为开发人员提供了强大的功能,但代价是增加了开发人员的复杂性。在ListView中某些可以轻松完成的事情现在可以花费很多不必要的精力。


但是,是的,ListView无法完成许多工作,例如令人惊叹的LayoutManager功能,该功能可让您动态地无缝地将布局更改为水平,垂直,网格或交错网格。


我在这里就这个话题写了详细的答案。


查看完整回答
反对 回复 2019-10-04
  • 3 回答
  • 0 关注
  • 798 浏览

添加回答

举报

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