Repository navigation
fix: keep native content in place when a header above the viewport resizes - #607
Open
chrispader wants to merge 1 commit into
Open
chrispader wants to merge 1 commit into
chrispader wants to merge 1 commit into
Conversation
…sizes setHeaderSize only compensated header size changes on web. On native, maintainVisibleContentPosition anchors to the absolutely positioned ScrollAdjust view, which a header resize does not move, so the native scroll offset stayed where it was and the visible items moved by the size difference. For example, removing a loading placeholder rendered as the list header shifted the rows the user was reading. Header changes above the viewport now request the same adjustment on every platform. On Android, shrinking content can first clamp the scroll offset to the new end. The MVCP item-resize path already handled that clamp, so it moves to a shared helper that both paths use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
38 tasks done
chrispader
added a commit
to margelo/Expensify
that referenced
this pull request
Nov 12, 2026
The patch now is the build output of LegendApp/legend-list#607. That PR applies LegendList's header-size adjustment on every platform and reuses the Android clamp handling that item resizes already have, instead of the header-only copy of it. The patch also gets its details.md entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
setHeaderSizeonly compensates header size changes on web (#468). On native,maintainVisibleContentPositionanchors to the absolutely positionedScrollAdjustview, which a header resize doesn't move. The scroll offset stays where it was, and the visible items move by the size difference. With this change, header size changes above the viewport request the same adjustment on every platform.On Android, a header that shrinks near the end of the content can first clamp the scroll offset to the new end. The item-resize path in
prepareMVCPalready handled that clamp, so it moves to a shared helper that both paths use.We hit this in Expensify/App#100733, which moves the chat message list to LegendList. While offline, the chat shows a loading placeholder as the list header, and when it disappeared on reconnect, the messages on screen moved by its height. Expensify currently carries this fix as a patch.
Reproduction
maintainVisibleContentPositionand aListHeaderComponentwhose height can change, scrolled so that the header is above the viewport.🤖 Generated with Claude Code