From 6f3daa44cecff6bcfeec190012aa236b099c220e Mon Sep 17 00:00:00 2001 From: cgspine Date: Wed, 13 Feb 2019 17:57:33 +0800 Subject: [PATCH] refreshCustomData --- .../qmui/widget/section/QMUIStickySectionAdapter.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionAdapter.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionAdapter.java index 3aae0f55..32d2f040 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionAdapter.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionAdapter.java @@ -141,6 +141,17 @@ public abstract class QMUIStickySectionAdapter< } } + + /** + * section data is not changed, only custom item index may changed, so we also need to regenerate index + */ + public void refreshCustomData(){ + QMUISectionDiffCallback callback = createDiffCallback(mBackupData, mCurrentData); + DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(callback, false); + callback.cloneNewIndexTo(mSectionIndex, mItemIndex); + diffResult.dispatchUpdatesTo(this); + } + protected QMUISectionDiffCallback createDiffCallback( List> lastData, List> currentData) { return new QMUISectionDiffCallback<>(lastData, currentData);