我正在寻找在Android中使用列表适配器和RecyclerView适配器之间的区别。它们在性能、优缺点方面有什么不同。
我正在寻找在Android中使用列表适配器和RecyclerView适配器之间的区别。它们在性能、优缺点方面有什么不同。
ListAdapter
是 RecyclerView.Adapter
的扩展。它在后台线程上使用 AsyncListDiff
计算列表之间的差异。
您可以显然地创建一个 RecyclerView.Adapter
以同样的方式工作。只是 ListAdapter
已经默认实现了这个原理。它定义了一个强制使用 DiffUtil
的约定,因此它的两个构造函数都需要一个 DiffChecker
。
如果您使用带有 AsyncDiffChecker 的 RecyclerView.Adapter
,则性能将与使用 ListAdapter
相同。如果没有异步 Diff 检查器,则 ListAdapter
的性能将更好。
Recyclerview.Adapter
ListAdapter
List Adapter是RecyclerView.Adapter的扩展,用于在RecyclerView中呈现列表数据,包括在后台线程上计算列表之间的差异。
它使用DiffUtil实用程序类来计算两个列表之间的差异,并输出一系列更新操作,将第一个列表转换为第二个列表。
在RecyclerView中使用LiveData是向适配器提供数据的简单方法,借助ListAdapter的帮助不再需要如此 - 当有新列表可用时,您可以直接调用submitList(List)。您可以在这里查看实现。
因此,在静态内容的情况下,您可以使用RecyclerView.Adapter,但在动态内容的情况下,建议使用ListAdapter。
ListAdapter
旨在解决DiffUtil
中的动画问题。 - Teo