From a9b0a7aca01ff913278b2e782838a4365e71aa5f Mon Sep 17 00:00:00 2001 From: Land Channing Date: Thu, 8 Sep 2022 13:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20DiffUtil.DiffResult=20?= =?UTF-8?q?=E4=B8=BA=E5=8F=82=E6=95=B0=E7=9A=84=20setDiffNewData=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` open fun setDiffNewData(@NonNull diffResult: DiffUtil.DiffResult, list: MutableList) { if (hasEmptyView()) { // If the current view is an empty view, set the new data directly without diff setNewInstance(list) return } diffResult.dispatchUpdatesTo(BrvahListUpdateCallback(this)) this.data = list } ``` 这个方法中,this.data = list 是在 diffResult.dispatchUpdatesTo 之后调用的,请问这个调用顺序是有什么特殊作用吗? 我的理解这会导致 adapter.notify 系列方法触发时,数据源(this.data)依然是旧的,所以提个合并请求 --- .../main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt index e87f7adda..17bba4690 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt @@ -1325,8 +1325,8 @@ abstract class BaseQuickAdapter setNewInstance(list) return } - diffResult.dispatchUpdatesTo(BrvahListUpdateCallback(this)) this.data = list + diffResult.dispatchUpdatesTo(BrvahListUpdateCallback(this)) } /************************************** Set Listener ****************************************/