as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

react-native-screens

react-native-screens

react-native-screens旨在向React Native公开原生导航容器组件。它不是为了用作独立库而设计,而是作为功能齐全的导航库的依赖项而设计。

安装

  1. 在package.json文件中添加依赖项:

    已复制到剪贴板。

     "dependencies": {
         ...
         "@amazon-devices/react-native-screens": "~2.0.0"
     }
    
  2. 使用npm install命令重新安装npm软件包。

示例

已复制到剪贴板。


import { enableFreeze, enableScreens } from '@amazon-devices/react-native-screens';
import { NavigationContainer } from '@amazon-devices/react-navigation__native';
import { createStackNavigator } from '@amazon-devices/react-navigation__stack';
import * as React from 'react';
import {
  StyleSheet,
  Text,
  TouchableOpacity,
  View
} from 'react-native';

enableScreens();
enableFreeze();

const Stack = createStackNavigator();

//@ts-ignore
const DemoScreen = ({ navigation, route }) => {
  const { id } = route.params;
  return (
    <View>
      <Text>屏幕 {id}</Text>
      {[0,1,2,3].map((buttonId) => (
        <TouchableOpacity onPress={() => navigation.navigate('Screen' + buttonId)}>
          <Text>转到屏幕#{buttonId}</Text>
        </TouchableOpacity>
      ))}
      <TouchableOpacity onPress={() => navigation.goBack()}>
        <Text>{"<- 返回"}</Text>
      </TouchableOpacity>
    </View>
  )
}

const screenOptions = { animationEnabled: true }
export const App = () => (
  <NavigationContainer>
    <Stack.Navigator screenOptions={screenOptions} detachInactiveScreens>
      <Stack.Screen key={0} name={"屏幕" + 0} component={DemoScreen} initialParams={{ id: 0 }} options={screenOptions} />
      <Stack.Screen key={1} name={"屏幕" + 1} component={DemoScreen} initialParams={{ id: 1 }} options={screenOptions} />
      <Stack.Screen key={2} name={"屏幕" + 2} component={DemoScreen} initialParams={{ id: 2 }} options={screenOptions} />
      <Stack.Screen key={3} name={"屏幕" + 3} component={DemoScreen} initialParams={{ id: 3 }} options={screenOptions} />
    </Stack.Navigator>
  </NavigationContainer>
)

API参考

组件

组件名称 描述
ScreenContainer 此组件是一个或多个Screen组件的容器。
Screen 此组件是我们要在导航屏幕上显示的视图的容器。
ScreenStack 屏幕堆栈组件需要一个或多个Screen组件作为直接子组件,并在platform-native堆栈容器中渲染Screen组件。

适用于Vega的React Native使用react-native-screens来增加对原生屏幕的支持,并支持与react-native-screens API相同的API。

不支持特定于iOS、Android和Windows的属性。

实现详情

  • 不支持以下<Screen>组件属性(大多数是特定于iOS/Android的):
    • customAnimationOnSwipe
    • fullScreenSwipeEnabled
    • gestureEnabled
    • gestureResponseDistance
    • hideKeyboardOnSwipe
    • homeIndicatorHidden
    • nativeBackButtonDismissalEnabled
    • navigationBarColor
    • navigationBarHidden
    • onHeaderBackButtonClicked
    • onNativeDismissCancelled
    • preventNativeDismiss
    • replaceAnimation
    • screenOrientation
    • sheetAllowedDetents
    • sheetExpandsWhenScrolledToEdge
    • sheetCornerRadius
    • sheetGrabberVisible
    • sheetLargestUndimmedDetent
    • stackAnimation(仅支持渐变动画)
    • stackPresentation
    • statusBarAnimation
    • statusBarColor
    • statusBarHidden
    • statusBarStyle
    • statusBarTranslucent
    • swipeDirection
    • transitionDuration
  • 不支持<ScreenStackHeaderConfig>和其他标头组件 (<ScreenStackHeaderCenterView>ScreenStackHeaderRightView<ScreenStackHeaderLeftView><ScreenStackHeaderSearchBarView>)。

禁用react-native-screens

如果您想禁用原生屏幕支持并使用普通的React Native视图,请在入口文件 (App.js) 中添加以下代码:

已复制到剪贴板。

import { enableScreens } from '@amazon-devices/react-native-screens';

enableScreens(false);

支持的版本

程序包名称 亚马逊NPM库版本 OSS NPM库版本 Vega OS内部版本号 Vega SDK版本 发行说明
@amazon-devices/react-native-screens 2.0.0+3.25.0 3.25.0 OS 1.1 (201010435950) 0.19 作为系统分布式库发布。初始版本不需要进行向后兼容性检查。

其他资源

有关其他库的信息,请参阅支持的第三方库和服务


Last updated: 2025年9月30日