React Native Screens 5.0.0-alpha.2

v5.​0.​0-​alpha.​2Pre-release

Key changes

This is the second alpha release of react-native-screens 5.0.0. A major part of it went into migrating the iOS Split Navigation implementation from Swift to Objective-C. Core components also pick up several enhancements, including the liftOnScroll prop for the small header on Android and titleMenu support on iOS for Stack v5. This release adds support for react-native 0.87.

Improvements

  • Android (Stack v5): expose the liftOnScroll prop for the small header and integrate it with SVM in #4368
  • iOS (Stack v5): add titleMenu in #4349
  • Android (FormSheet v5): add support for preventNativeDismiss in #4332
  • iOS (Stack v4): add subtitle support for UIMenu header button submenus in #4107
  • iOS: add the experimental ScrollToTopGuard component in #4363
  • iOS (Split): migrate the implementation to Objective-C, covering ReactMountingTransactionObserving (#4420), appearance-related logic (#4421), RNSSplitNavigationController (#4422), RNSSplitScreenController (#4424) and RNSSplitHostController with all associated classes (#4425), followed by post Swift-removal cleanup (#4426)
  • Android (Stack v5): split large classes and reorganize the package structure in #4354
  • Change the default value of backTitleVisible to boolean true instead of the string 'true' in #4423

Bug fixes

  • Android: fix a crash when the header is updated during screen removal in #4444
  • Android (FormSheet v4): clean up the inset and layout listeners in #4449
  • iOS: keep a view controller's view in place instead of swapping it during a transition in #4407
  • iOS (Stack v4): fall back to inheriting the orientation when it is not defined on the screen in #4408
  • iOS (Stack v5): use framework-style imports for React core headers in #4402
  • JS: prevent use of the ViewInstance type in #4447
  • iOS (Tabs): the tab bar re-layout after an async icon load, which prevented label truncation on iOS 26 (#4411), was reverted before this release in #4476

Tests and maintenance

  • Android: add e2e coverage for the header back button in #4418
  • Android: add an e2e test for Stack v5 toolbar menu commands in #4412
  • Android: add an e2e test for stack toolbar menu title props in #4414
  • iOS: add an e2e test for Stack header selective updates in #4383
  • iOS: add an e2e test for Stack header subview onPress in #4389
  • iOS: add an e2e test for Stack v5 header menu options in #4350 and a test for the iOS stack header menu in #4362
  • Stack v5: add a simple navigation e2e test in #4393 and an e2e test for stack lifecycle events in #4399
  • Remove a duplicated native class name definition in the e2e setup in #4442
  • Render the Toast above the system navigation bar in tests in #4334

Miscellaneous

  • Add support for react-native@0.87.0-rc.3 in #4375
  • Android: fix incremental compilation in FabricExample, broken by a Kotlin 2.2 symlink issue, in #4443
  • Propose a file structure organization for the FormSheet component on Android in #4403
  • Examples (Stack v5): erase options as required from StackRouteConfig in #4419
  • Format RNSScreenShadowNode.cpp after #4357 in #4405
  • Aggregate dependabot updates in #4397
  • Update the sponsors section in #4416

Source: 5.0.0-alpha.2 release notes on GitHub. Full changelog: 5.0.0-alpha.1...5.0.0-alpha.2.

Release card
React Native Screens 5.0.0-alpha.2 release card