【发布时间】:2021-07-28 21:50:39
【问题描述】:
我目前正在通过 Udacity 的 Kotlin Android 开发人员计划学习 Kotlin。有两个使用 DiffUtil.ItemCallback 的示例应用程序,但以不同的方式声明它。两个示例应用程序都使用 ListAdapter,但其中一个应用程序声明 DiffUtil,如下所示:companion object DiffCallback : DiffUtil.ItemCallback<MarsProperty>()
而另一个是这样的:class SleepNightDiffCallback: DiffUtil.ItemCallback<SleepNight>()
两个 DiffUtils 都作为参数传递给 ListAdapter,唯一的区别是在类实现的情况下,它必须被初始化:
class PhotoGridAdapter : ListAdapter<MarsProperty, PhotoGridAdapter.ViewHolder>(DiffCallback)
class SleepNightAdapter : ListAdapter<SleepNight, SleepNightAdapter.ViewHolder>(SleepNightDiffCallback())
这些示例应用程序之间的唯一区别是,一个从 Internet 下载并显示图像(带有 PhotoGridAdapter 的应用程序),而另一个显示来自数据库的数据,所以 我的问题是:与另一种相比,一种实现首选吗?它们之间有性能差异吗?
【问题讨论】:
标签: kotlin android-recyclerview listadapter android-diffutils