环氧库中的自动比较是否基于DiffUtil?



我在寻找RecyclerView的信息时偶然发现了Epoxy library

Epoxy是一个库,使RecyclerView更容易使用。

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

因为我使用的RecyclerView是基于two view types的,而且这两个项目都是dynamically added/removed频繁(DiffUitl也被使用)。

然而,当阅读Epoxy library in Git的描述时,

我遇到了以下内容:

此外,环氧树脂增加了保存视图状态和自动区分项目变化的支持。

我很好奇你说的automatic diffing是基于什么工作的。是DiffUtil内部还是简单的notifyDatasetChanged()?

如果它使用DiffUtil,那么我将使用Epoxy,或者我会考虑它。

还是简单的notifyDatasetChanged()?

他们没有按照文档使用notifyDatasetChanged():

环氧树脂的自动变化,以减少开销,同时也有效地只更新改变的视图。


it Is DiffUtil internal

DiffUtil用于EpoxyController类,但不用于EpoxyAdapter类,文档说:

Android支持库类DiffUtil用于区分EpoxyController。由于遗留原因,旧的EpoxyAdapter使用

所以,当你还在设计你的应用程序时,我希望你会使用EpoxyController而不是传统的EpoxyAdapter;因此,DiffUtil已经利用。


如果它使用DiffUtil那么我将使用环氧树脂或我会考虑它

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

最新更新