Skip to content

Solution to navigationbar/statusbar coverage and initialWindowMetrics #734

Description

@Fabian-Lobnig

Description

Solution to many open issues with edge-to-edge mode compatibility of this library - this is more of a fix than an issue

I had this problem that my application drew over the navigation bar like many of the currently open issues.
The solution is to not use initialWindowMetrics.frame as it is incorrectly derived from Dimensions.get('window') (this might be a bug in Android API level 35+?)
Instead utilize the correct initialWindowMetrics.insets.bottom and initialWindowMetrics.insets.top alongside Dimensions.get('screen') to calculate application window dimensions manually

Example:
const applicationWindowHeight = Dimensions.get('screen').height - initialWindowMetrics.insets.bottom - initialWindowMetrics.insets.top

Steps to reproduce

  1. use initialWindowMetrics.frame
  2. observe correctness in Android API 35 and less
  3. observe incorrectness in Android API 35+

Snack or a link to a repository

https://example.com

Safe Area Context version

5.7.0

React Native version

0.84.0

Platforms

Android

Architecture

Fabric (New Architecture)

Build type

Release mode

Device

Real device

Device model

No response

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions