From 3caff51c19a1cb7103f3fc8caaf611f233d6e867 Mon Sep 17 00:00:00 2001 From: zixiaoweng Date: Tue, 9 Jan 2024 19:59:38 +0800 Subject: [PATCH] feat: QMUIStickySectionAdapter findPosition return itemIndex --- plugin/src/main/java/com/qmuiteam/plugin/Dep.kt | 2 +- .../qmui/widget/section/QMUIStickySectionAdapter.java | 10 +++++----- .../section/QDBaseSectionLayoutFragment.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt b/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt index 4f09a0e7..11d331bc 100644 --- a/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt +++ b/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt @@ -13,7 +13,7 @@ object Dep { object QMUI { const val group = "com.qmuiteam" - const val qmuiVer = "2.1.0.25" + const val qmuiVer = "2.1.0.26" const val archVer = "2.1.0.4" const val typeVer = "0.1.0.8" 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 e973f282..adf13569 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 @@ -503,11 +503,11 @@ public abstract class QMUIStickySectionAdapter< } int itemIndex = getItemIndex(i); if (itemIndex == ITEM_INDEX_SECTION_HEADER) { - if (positionFinder.find(section, null)) { + if (positionFinder.find(section, null, -1)) { return i; } } else if (itemIndex >= 0) { - if (positionFinder.find(section, section.getItemAt(itemIndex))) { + if (positionFinder.find(section, section.getItemAt(itemIndex), itemIndex)) { return i; } } @@ -519,12 +519,12 @@ public abstract class QMUIStickySectionAdapter< loop: for (int i = 0; i < mCurrentData.size(); i++) { QMUISection section = mCurrentData.get(i); - if (positionFinder.find(section, null)) { + if (positionFinder.find(section, null, -1)) { targetSection = section; break; } for (int j = 0; j < section.getItemCount(); j++) { - if (positionFinder.find(section, section.getItemAt(j))) { + if (positionFinder.find(section, section.getItemAt(j), j)) { targetSection = section; targetItem = section.getItemAt(j); boolean isFold = section.isFold(); @@ -751,7 +751,7 @@ public abstract class QMUIStickySectionAdapter< * @param item * @return */ - boolean find(@NonNull QMUISection section, @Nullable T item); + boolean find(@NonNull QMUISection section, @Nullable T item, int itemIndex); } public static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/qmuidemo/src/main/java/com/qmuiteam/qmuidemo/fragment/components/section/QDBaseSectionLayoutFragment.java b/qmuidemo/src/main/java/com/qmuiteam/qmuidemo/fragment/components/section/QDBaseSectionLayoutFragment.java index 9723b736..6771672e 100644 --- a/qmuidemo/src/main/java/com/qmuiteam/qmuidemo/fragment/components/section/QDBaseSectionLayoutFragment.java +++ b/qmuidemo/src/main/java/com/qmuiteam/qmuidemo/fragment/components/section/QDBaseSectionLayoutFragment.java @@ -202,7 +202,7 @@ public abstract class QDBaseSectionLayoutFragment extends BaseFragment { case 2: { int targetPosition = mAdapter.findPosition(new QMUIStickySectionAdapter.PositionFinder() { @Override - public boolean find(@NonNull QMUISection section, @Nullable SectionItem item) { + public boolean find(@NonNull QMUISection section, @Nullable SectionItem item, int itemIndex) { return "header 4".equals(section.getHeader().getText()) && (item != null && "item 13".equals(item.getText())); } }, true);