Skip to content

Fix tab bar flicker on hide/show#430

Open
dfabulich wants to merge 1 commit into
skiptools:mainfrom
dfabulich:tab-bar-flicker
Open

Fix tab bar flicker on hide/show#430
dfabulich wants to merge 1 commit into
skiptools:mainfrom
dfabulich:tab-bar-flicker

Conversation

@dfabulich
Copy link
Copy Markdown
Contributor

Contributed preferences automatically erase themselves in a DisposableEffect. We were contributing a preference that only ran when the IgnoresSafeAreaLayout detected that we were adjacent to the bottom of the screen, but that can be unstable, as IgnoresSafeAreaLayout waits for onGloballyPositionedInWindow.

Contributing the preferences outside IgnoresSafeAreaLayout ensures that they don't erase themselves when ISAL is temporarily incorrect.

Skip Pull Request Checklist:

  • REQUIRED: I have signed the Contributor Agreement
  • REQUIRED: I have tested my change locally with swift test
  • OPTIONAL: I have tested my change on an iOS simulator or device
  • OPTIONAL: I have tested my change on an Android emulator or device
  • REQUIRED: I have checked whether this change requires a corresponding update in the Skip Fuse UI repository (link related PR if applicable)
    Not required
  • OPTIONAL: I have added an example of any UI changes in the Showcase sample app

  • AI was used to generate or assist with generating this PR. Please specify below how you used AI to help you, and what steps you have taken to manually verify the changes.

Cursor did this; I tested it in Showcase Lite with the Safe Area --> Geometry Reader playground. Hide the bottom bar before hiding/showing the tab bar.

(You'll still see a flicker if you show/hide the tab bar with the bottom bar showing. I tried working on this last week when I implemented #414, and that was one of the things that stumped me. I don't use a bottom bar; fixing that flicker will be a separate PR, perhaps much more difficult.)

Contributed preferences automatically erase themselves in a `DisposableEffect`. We were contributing a preference that only ran when the `IgnoresSafeAreaLayout` detected that we were adjacent to the bottom of the screen, but that can be unstable, as `IgnoresSafeAreaLayout` waits for `onGloballyPositionedInWindow`.

Contributing the preferences outside `IgnoresSafeAreaLayout` ensures that they don't erase themselves when ISAL is temporarily incorrect.
@cla-bot cla-bot Bot added the cla-signed label May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant