Skip to content

apply safe area insets to menu #4709

Open
@mehranabi

Description

@mehranabi

Current behaviour

When I have a large component in a Menu, it can go out of the safe-area-view going behind the statusbar and the notch (photos below).

Expected behaviour

Menu should consider the SafeArea Insets when calculating the available space to show the menu on Top.

How to reproduce?

Render a large enough component in a Menu and scroll to a point that including the statusbar/notch there's enough space on top of the anchor.
The menu opens on top and goes under the statusbar/notch.

Preview

iPhone 13 mini:

What have you tried so far?

Adding SafeArea Top Inset value to the additionalVerticalValue calculated here fixes the issue:

// I don't know why but on Android measure function is wrong by 24
const additionalVerticalValue = Platform.select({
android: statusBarHeight ?? insets.top,
default: 0,
});

Although after doing this, when the menu opens below the anchor, it has a space from anchor equal to the top-inset, so more changes are needed to correctly apply the insets.

Your Environment

software version
ios 18.1
android SDK 34
react-native 0.76.9
react-native-paper 5.13.3
node v22.12.0
npm or yarn yarn 4.7.0
expo sdk ~52.0.46

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions