Skip to content

Make SystemChrome updates deterministic #17664

Closed

Description

@jonahwilliams

Currently we schedule a microtask and update the system chrome to whatever the last value is. This can vary based on which widget subtrees get rebuilt, since it is conventional to call this API in build.

Instead we should always pick an overlay style setting based on the topmost widgets.

Activity

  1. jonahwilliams commented on May 16, 2018

    @jonahwilliams
    ContributorAuthor

    Explored a solution that involved hitTesting near the very top of the screen, triggered by a special widget. Problems:

    • Only works consistently if the widget is sufficiently early in the tree
    • Blocked by certain parent widgets that handle gestures
    • Page transition animations will build this set of widgets, however the new theme won't be in position to be hitTested until the route animation has completed.
    • Because of above, seems like we would need to do this on every frame.

    I'm looking for a more robust solution.

    cc @HansMuller , @Hixie

  2. goderbauer commented on May 16, 2018

    @goderbauer
    Member

    I was just pointed to #4630.

  3. Hixie commented on May 16, 2018

    @Hixie
    Contributor

    you want to hit test on the layer tree. See #4630 (comment)

  4. jonahwilliams commented on Jun 20, 2018

    @jonahwilliams
    ContributorAuthor

    Closing as a dupe of #4630

  5. github-actions commented on Sep 3, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  6. locked as resolved and limited conversation to collaborators on Sep 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

platform-androidAndroid applications specificallyplatform-iosiOS applications specifically

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions