mirror of
https://github.com/Tencent/QMUI_Android.git
synced 2026-10-17 04:31:16 +08:00
feat: QMUIStickySectionLayout support different height stick view
This commit is contained in:
@@ -13,7 +13,7 @@ object Dep {
|
||||
|
||||
object QMUI {
|
||||
const val group = "com.qmuiteam"
|
||||
const val qmuiVer = "2.1.0.18"
|
||||
const val qmuiVer = "2.1.0.21"
|
||||
const val archVer = "2.1.0.4"
|
||||
const val typeVer = "0.1.0.8"
|
||||
|
||||
|
||||
+12
-3
@@ -17,6 +17,7 @@
|
||||
package com.qmuiteam.qmui.widget.section;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
@@ -163,8 +164,14 @@ public class QMUIStickySectionItemDecoration<VH extends QMUIStickySectionAdapter
|
||||
|
||||
setHeaderVisibility(true);
|
||||
|
||||
int contactPoint = sectionContainer.getHeight() - 1;
|
||||
final View childInContact = parent.findChildViewUnder(parent.getWidth() / 2, contactPoint);
|
||||
View secondChild = linearLayoutManager.findViewByPosition(firstVisibleItemPosition + 1);
|
||||
View firstChild = linearLayoutManager.findViewByPosition(firstVisibleItemPosition);
|
||||
View childInContact = null;
|
||||
if (firstChild != null && firstChild.getTop() == 0) {
|
||||
childInContact = firstChild;
|
||||
} else {
|
||||
childInContact = secondChild;
|
||||
}
|
||||
if (childInContact == null) {
|
||||
mTargetTop = parent.getTop();
|
||||
ViewCompat.offsetTopAndBottom(sectionContainer, mTargetTop - sectionContainer.getTop());
|
||||
@@ -173,7 +180,9 @@ public class QMUIStickySectionItemDecoration<VH extends QMUIStickySectionAdapter
|
||||
|
||||
if (mCallback.isHeaderItem(parent.getChildAdapterPosition(childInContact))) {
|
||||
mTargetTop = childInContact.getTop() + parent.getTop() - sectionContainer.getHeight();
|
||||
ViewCompat.offsetTopAndBottom(sectionContainer, mTargetTop - sectionContainer.getTop());
|
||||
if (mTargetTop <= 0) {
|
||||
ViewCompat.offsetTopAndBottom(sectionContainer, mTargetTop - sectionContainer.getTop());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewParent;
|
||||
|
||||
Reference in New Issue
Block a user