From f45efd8bc44f5e9f0f0637b4e649bdc4b490acbd Mon Sep 17 00:00:00 2001 From: zixiaoweng Date: Tue, 5 Nov 2024 14:17:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=A0=E8=8A=82=E8=B4=AD=E4=B9=B0=E6=8A=98?= =?UTF-8?q?=E5=8F=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/qmuiteam/plugin/Dep.kt | 2 +- .../section/QMUIStickySectionAdapter.java | 25 +++++++++++++++++++ .../section/QMUIStickySectionLayout.java | 5 ++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt b/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt index 1bb64a42..34bb6203 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.29" + const val qmuiVer = "2.1.1.34" 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 adf13569..a450d4c7 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 @@ -573,6 +573,29 @@ public abstract class QMUIStickySectionAdapter< } } + public void toggleFoldForChapterBuy(int position) { + QMUISection section = getSection(position); + if (section == null) { + return; + } + if (mViewCallback != null && !section.isFold()) { + for (int i = 0; i < mSectionIndex.size(); i++) { + int itemIndex = getItemIndex(i); + if (itemIndex == ITEM_INDEX_SECTION_HEADER && getSection(i) == section && mViewCallback.doGetStickyHeaderPosition() == position) { + mViewCallback.scrollToPosition(i, true, true); + RecyclerView recyclerView = mViewCallback.getRecyclerView(); + section.setFold(!section.isFold()); + lock(section); + diff(false, true); + return; + } + } + } + section.setFold(!section.isFold()); + lock(section); + diff(false, true); + } + public int getRelativeStickyPosition(int position) { while (getItemViewType(position) != ITEM_TYPE_SECTION_HEADER) { @@ -741,6 +764,8 @@ public abstract class QMUIStickySectionAdapter< RecyclerView.ViewHolder findViewHolderForAdapterPosition(int position); void requestChildFocus(View view); + int doGetStickyHeaderPosition(); + RecyclerView getRecyclerView(); } public interface PositionFinder, T extends QMUISection.Model> { diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionLayout.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionLayout.java index d57ba6e3..02dee17e 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionLayout.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/section/QMUIStickySectionLayout.java @@ -267,6 +267,11 @@ public class QMUIStickySectionLayout extends QMUIFrameLayout implements QMUIStic mRecyclerView.requestChildFocus(view, null); } + @Override + public int doGetStickyHeaderPosition() { + return getStickyHeaderPosition(); + } + public interface StickySectionWrapViewConfig { void config(QMUIFrameLayout stickySectionWrapView); }