Skip to content

[iOS] Native header button backdrops only appear on initial tab, not on lazily rendered tabs #3453

@antekordic

Description

@antekordic

Description

When using a bottom tab navigator with nested native stack navigators that have headerTransparent: true and headerLargeTitle: true, the native iOS header button backdrops (translucent pill-shaped backgrounds) only appear on the initially rendered tab.

Tabs that are lazily rendered when the user navigates to them do not receive the native backdrops, even with identical configuration.

This affects all header bar button items - headerRight, headerLeft, and back buttons.

Screenshots

Initial render (correct):

Image

After switching tabs (broken):

Image

Steps to reproduce

Steps to reproduce

  1. Create a bottom tab navigator with 2+ tabs
  2. Each tab has a nested native stack navigator
  3. Configure screens with headerTransparent: true, headerLargeTitle: true, and headerRight with icons
  4. Launch app - initial tab shows native backdrops correctly
  5. Navigate to second tab - no backdrops appear

Expected behavior

All tabs should render native header button backdrops regardless of render order.

Actual behavior

Only the initially rendered tab gets native backdrops. Lazily rendered tabs never receive them.

Snack reproduction

[Your Snack URL]

Environment

  • react-native-screens: 4.18.0
  • react-native: 0.81.5
  • expo-router: 6.0.14
  • iOS version: 18.x
  • Expo SDK: 54

Snack or a link to a repository

https://snack.expo.dev/@antekordic/native-header-button-backdrops-

Screens version

4.18.0

React Native version

0.81.5

Platforms

iOS

JavaScript runtime

None

Workflow

Expo managed workflow

Architecture

Fabric (New Architecture)

Build type

Debug mode

Device

Real device

Device model

No response

Acknowledgements

Yes

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions