react-native-screens: Native navigation primitives for React Native
Native platform navigation bridge for React Navigation.
Learn more about React Native Screens
react-native-screens is a React Native library that wraps native navigation containers from iOS, Android, and other supported platforms. It bridges React Native code to native navigation APIs, allowing navigation libraries to leverage platform-specific navigation behaviors and optimizations. The library supports multiple platforms including iOS, Android, tvOS, visionOS, Windows, and Web, with separate implementations for each platform's native navigation patterns. It integrates with React Navigation and is designed to be used as an underlying dependency rather than directly in applications.
Native container access
Exposes native navigation container components directly to React Native, allowing navigation libraries to use platform-specific navigation implementations rather than JavaScript-only alternatives.
Multi-platform support
Provides native navigation primitives across iOS, Android, tvOS, visionOS, Windows, and Web, with platform-specific implementations that leverage each platform's native navigation capabilities.
Fabric architecture support
Includes support for React Native's Fabric rendering system alongside the legacy Paper architecture, with version-specific compatibility for different React Native releases.
import android.os.Bundle;
import com.swmansion.rnscreens.fragment.restoration.RNScreensFragmentFactory;
public class MainActivity extends ReactActivity {
//...existing code
//react-native-screens override
@Override
protected void onCreate(Bundle savedInstanceState) {
getSupportFragmentManager().setFragmentFactory(new RNScreensFragmentFactory());
super.onCreate(savedInstanceState);
}
public static class MainActivityDelegate extends ReactActivityDelegate {
//...existing code
}
}Improved formSheet on Android with dynamic content size support and added testId, accessibilityLabel for tabs, and full tabs background styling.
- –fix(Android, FormSheet): Fix dynamic height change for fitToContents
- –fix(Android, FormSheet): Fix Y translation when fitToContents content overflows Screen size
- –feat: Add testId and accessibilityLabel for BottomTabsScreen and Item
- –feat(Tabs): allow full tabs background color styling
Removed native-stack v5, added bottom tabs special effects on Android, iOS bottomAccessory support, and SplitView improvements.
- –feat: Remove native-stack v5 from screens repo
- –feat(iOS, Tabs): add bottomAccessory support
- –feat(Android, Tabs): Add special effects to bottom tabs on Android
- –feat(iOS, SplitView): Add support for primaryBackgroundStyle prop
- –feat(Stack): Add support for synchronous state updates on fabric for native stack
Refactored bottom tabs icons API and improved header items API with type support and renamed properties.
- –refactor(Tabs): Refactor APIs for icons
- –fix(iOS): accept multiple attributes for menu items
- –refactor(iOS): add type to header bar button items
- –refactor(iOS): rename label -> title in context of header items API
Top in Mobile & Desktop
Related Repositories
Discover similar tools and frameworks used by developers
TapTap
Ports Android 12's double-tap back gesture to Android 7.0+ with 50+ configurable actions.
AyuGram Desktop
Telegram desktop fork with enhanced privacy, customization, and message history preservation.
Seal
Android video/audio downloader using yt-dlp with Kotlin and Jetpack Compose.
Telegram Desktop
Official Telegram desktop client for Windows, macOS, and Linux using the MTProto secure protocol.
ReVanced Manager
Flutter Android app that applies ReVanced patches to modify apps without requiring desktop tools.