Epoxy库中的自动比对是基于DiffUtil的吗?

Is the automatic comparison in the Epoxy library based on DiffUtil?

我在查找有关 RecyclerView 的信息时遇到了 Epoxy library

Epoxy 是一个使 RecyclerView 更易于使用的库。

我还没有将它应用到我的应用程序中,但我认为如果我应用它会更容易。

因为我用的RecyclerView是基于two view types的,而且这两项都是dynamically added/removed经常使用的(DiffUitl也是用的)

但是,在阅读 Epoxy library in Git 的描述时,

我遇到了以下情况:

Additionally, Epoxy adds support for saving view state and automatic diffing of item changes.

我很好奇 automatic diffing 你在这里谈论的作品是基于什么。 是内部 DiffUtil 还是简单 notifyDatasetChanged()?

如果用DiffUtil那我就用Epoxy不然我会考虑的

or simply notifyDatasetChanged()?

他们没有按照 documentation:

使用 notifyDatasetChanged()

Epoxy's automatic diffing to reduce the overhead, while also efficiently only updating the views that changed.


Is it DiffUtil internally

DiffUtil用于EpoxyControllerclass,但不用于EpoxyAdapterclassdocumentation 表示:

The Android Support Library class DiffUtil is used for diffing in EpoxyController. For legacy reasons, the older EpoxyAdapter uses a custom solution for diffing.

因此,在您仍在设计应用程序时,我希望您会使用 EpoxyController 而不是旧版 EpoxyAdapter;因此,DiffUtil 已被使用。


If it uses DiffUtil then I'm going to use Epoxy or I'll consider it

由你决定;一般来说,使用库在连续性、安全性、局限性、复杂性等方面有利有弊