React Native Screens 5.0.0-alpha.4

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

Key changes

This is the fourth alpha release of react-native-screens 5.0.0. Tabs on iOS 26.1 and newer are now built on the UITab API. That brings a search tab backed by UISearchTab with the automaticallyActivatesSearch prop, prominentScreenKey and tabBarSidebarPreferredPlacement for iOS 27, and a series of fixes for tabs that overflow into More. Both platforms gain custom drawable and symbol tab-bar icons. Stack v5 header items on iOS accept visibilityPriority, menuRepresentation, variant and disabled, and the navigation bar's minimization on scroll is controlled with minimizationBehavior and restorationBehavior. On Android, Stack v5 detaches covered screens so both screens animate during a transition and handles the direction prop, and fragment restoration is now R8-safe. Stack v4 on iOS 26+ lays out screens under an opaque navigation bar and gains unstable_safeAreaEdges, and the broken types published for tabs and the stack header config are fixed. The 5.0 alphas are cut from the main branch, so this release also carries everything shipped on the 4.x line in 4.29.0 and 4.30.0.

Improvements

  • iOS (Tabs): tabs on iOS 26.1+ are built on the UITab API in #4675, and a tab with role: 'search' uses UISearchTab with the new automaticallyActivatesSearch prop in #4679.
  • iOS (Tabs): added prominentScreenKey on Tabs.Host so a chosen tab stays visible when the tab bar minimizes on iOS 27+ in #4724.
  • iOS (Tabs): added tabBarSidebarPreferredPlacement on Tabs.Host to choose between the sidebar and the tab bar on iOS 27 in #4668.
  • Tabs: custom drawable and symbol tab-bar icons, with per-slot coloring (renderingMode on iOS, tinting on Android), per-tab icon size, indicator sizing and an iOS fallback, in #4209.
  • iOS (Stack v5): header items accept visibilityPriority in #4678, menuRepresentation in #4587, variant (plain or prominent) in #4621 and disabled in #4620.
  • iOS (Stack v5): added minimizationBehavior and restorationBehavior on the header config to control when the navigation bar minimizes and restores on scroll in #4703.
  • iOS (Stack v4): header items accept visibilityPriority in #4709.
  • iOS (Stack v4): added the unstable_safeAreaEdges prop on ScreenStackItem to override the safe-area edges applied on iOS 26+ in #4872, and opaque headers no longer minimize on scroll in #4873.
  • Android (Stack v5): covered screens are detached during a push, so the screen underneath runs a real exit transition and leaves the view hierarchy while it stays covered, in #4633.
  • Android (Stack v5): added the direction prop (inherit, ltr or rtl) on Stack.Host and reworked the RTL collapsing-header workaround in #4611.
  • tvOS: added the disableDefaultMenuAction prop on ScreenStack to opt out of UIKit's automatic pop on the Menu button, so the press reaches JS, in #4665.

Bug fixes

  • iOS (Tabs): the tab bar no longer plays its hide animation on first render in #4673, and the bottom accessory keeps a consistent width in #4792.
  • iOS (Tabs): on the UITab path, the sidebar's Edit button is hidden in #4804, system-item icons are configured in the right order in #4813, and user selection of the search tab is no longer dropped by mount transactions in #4862.
  • iOS (Tabs): async-loaded icons are applied to tabs that overflow into More in #4889, and programmatic selection while More is active no longer sends a duplicate onTabSelected in #4890.
  • iOS (Stack v5): a stack screen now provides safe-area insets, so a SafeAreaView placed on it no longer overlaps the header, in #4738.
  • iOS (Stack v4): screens are laid out under an opaque navigation bar on iOS 26+, and the shadow tree is offset by the native screen origin, in #4757 and #4725.
  • iOS (Stack v4): header subview positions are updated after the navigation bar lays out on iOS 26+ in #4758, and useHeaderHeight reports the minimized header height on iOS 27+ in #4734.
  • iOS (Stack v4): the dismiss event is sent to JS when the pop animation ends in #4714.
  • iOS (Stack v4): a form sheet no longer resizes a recycled scroll view in #4791.
  • Android (Tabs): touches pass through the strip a hidden tab bar leaves behind in #4489.
  • Android (Stack v5): a valid header collapse state is restored after re-showing the header in #4606, and the color scheme resolves correctly while a header animates during a transition in #4634.
  • Android (Stack v4): orphaned fragments are removed when a ScreenContainer detaches in #4814.
  • Android: fragment restoration is R8-safe in #4540.
  • Android: header updates are skipped for a screen detached from its stack in #4498.
  • Android: setupFabric no longer crashes during instance teardown in #4790.
  • Android: touch coordinates are restored after covered screens rotate in #4760.
  • Android: legacy and tabs containers no longer delay the pressed state of child views, so native buttons show touch feedback immediately, in #4771.
  • Android: the warn, error and wtf RNSLog levels are always emitted in #4733.
  • Fixed broken types being published for Tabs.Host and Tabs.Screen in #4871 and for the stack header config in #4875.

This version supports React Native 0.84 and above.

See the full release notes for 5.0.0-alpha.4 on GitHub and the full changelog in 5.0.0-alpha.3...5.0.0-alpha.4.

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