Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 除了强制开发人员使用ViewHolder模式外,RecyclerView还有其他好处吗?_Android - Fatal编程技术网

Android 除了强制开发人员使用ViewHolder模式外,RecyclerView还有其他好处吗?

Android 除了强制开发人员使用ViewHolder模式外,RecyclerView还有其他好处吗?,android,Android,通过阅读文档和使用RecyclerView,我的印象是,它唯一的“好处”是迫使不知道如何正确实现视图持有者模式的开发人员使用它(视图持有者模式) 我知道如何在ListView中使用它,ListView还有一些在RecyclerView中不支持的功能(例如添加标题) 如果我错了,请纠正我,但是如果开发人员知道如何有效地使用ViewHolder模式,他们就不需要使用RecyclerView?在新项目中,您肯定应该使用RecyclerView,它是一种更新的API。它可以帮助您设置项目的动画,并且在更

通过阅读文档和使用RecyclerView,我的印象是,它唯一的“好处”是迫使不知道如何正确实现视图持有者模式的开发人员使用它(视图持有者模式)

我知道如何在ListView中使用它,ListView还有一些在RecyclerView中不支持的功能(例如添加标题)


如果我错了,请纠正我,但是如果开发人员知道如何有效地使用ViewHolder模式,他们就不需要使用RecyclerView?

在新项目中,您肯定应该使用
RecyclerView
,它是一种更新的API。它可以帮助您设置项目的动画,并且在更新适配器中的数据时具有更好的语义

它还通过采用
LayoutManager
模式,将回收逻辑与布局逻辑分离。(它还附带了一些现成的
LayoutManager
实现)


但我不一定建议您将现有代码从
ListView
移动到
RecyclerView
,除非您没有从中受益-对于基本列表,您可能没有受益。

因为
RecyclerView
不是
ListView
,所以您的意思是它支持比ListView更好的动画,并且可以使用它提供更干净、设计更好的代码?它附带了基本的“添加/删除项目”动画,您可以自定义它们。由于适配器现在跟踪哪些特定的数据索引正在更改,因此更新它(以及设置这些更改的动画)更容易。我不会说这会让你的代码自动变得更好,因为简单的用例是非常相似的。好的地方还在于它附带了支持库。这意味着所有android版本都有一个代码(以及一组可能需要处理的bug),您可以随时间进行更新。