我向/list.php?page=1发送请求并使用 Paging 3 组件在 UI 中显示数据。
在第一个请求中,areItemsTheSame(new, old)方法什么也不做。没有登录Logcat。
然后我用 SwipeRefreshLayout 刷新数据并请求发送相同的 api (/list.php?page=1)。
DiffUtil.ItemCallback areItemsTheSame(new, old)方法检查项目两次。一次是降序,然后是升序。
日志猫:
I: newItem: 3308 = oldItem: 3308 I: check: true
I: newItem: 3307 = oldItem: 3307 I: check: true
I: newItem: 3306 = oldItem: 3306 I: check: true
I: newItem: 3305 = oldItem: 3305 I:检查:正确
I:新项目:3304 = oldItem:3304 I:检查:正确
I:新项目:3303 = oldItem:3303 I:检查:正确
I:新项目:3302 = oldItem:3302 I:检查:正确
I: newItem:3301 = oldItem:3301 I:检查:真
I:newItem:3300 = oldItem:3300 I:检查:真
I:newItem:3300 = oldItem:3300 I:检查:真
I:newItem:3301 = oldItem:3301 I :检查:真
I:新项目:3302 = oldItem:3302 I:检查:真
I:新项目:3303 = oldItem:3303 I:检查:真
I:新项目:3304 = oldItem:3304 I:检查:真
I: newItem: 3305 = oldItem: 3305 I: check: true
I: newItem: 3306 = oldItem: 3306 I: check: true
I: newItem: 3307 = oldItem: 3307 I: check: true
I: newItem: 3308 = oldItem: 3308我:检查:真