我在寻找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那么我将使用环氧树脂或我会考虑它
由你决定;一般来说,使用库在连续性、安全性、局限性和复杂性方面有利有弊。等。