Skip to content

fix(sticky-header): 修正 RN/Web 的 offset-top 吸顶位置与状态判断 - #2610

Merged
hiyuki merged 4 commits into
masterfrom
codex/fix-sticky-header-offset-top
Nov 11, 2026
Merged

hiyuki merged 4 commits into
masterfrom
codex/fix-sticky-header-offset-top

Conversation

@yandadaFreedom

@yandadaFreedom yandadaFreedom commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

修复 RN / Web 中 sticky-header 设置非零 offset-top 时吸顶启动过晚、stickontopchange 判断与偏移位置不一致的问题。例如 headerTop=100、offset-top=40 时,应从滚动位置 60 开始固定在距容器顶部 40 的位置,而不是等到滚动超过 100 后再补偿偏移。

@hiyuki

hiyuki commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator

发现一个 P2 问题:RN 首次测量前会产生错误位移,存在首屏跳动风险。

位置:mpx-sticky-header.tsx:128–132。

headerTopAnimated 初始为 0。以实际 headerTop=100、offset-top=40、滚动位置=0 为例,新公式在 measureLayout 回调返回前计算出 translateY=40,测量完成、headerTopAnimated 更新为 100 后又归零。尚未到达吸顶位置的 header 因而会先下移再复位;PR 父提交在这一场景下的位移始终为 0。

建议在首次测量完成前保持正常布局,再启用吸顶变换。

验证:使用 PR 提交 e93d571 及其父提交的实际组件代码,通过 React Test Renderer 和模拟的 Animated/异步测量接口复现了上述位移差异;测量完成后的 RN/Web 吸顶阈值检查通过。尚未进行真机验证,实际可见跳动仍需在设备上确认。

@hiyuki
hiyuki merged commit 0b4691d into master Nov 11, 2026
3 checks passed
@hiyuki
hiyuki deleted the codex/fix-sticky-header-offset-top branch November 11, 2026 11:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants