6

我正在使用 RNN2,我需要将 Android 上的方向锁定为纵向。通常在传统的 android 应用程序中使用 manifest.xml 中的 android:screenOrientation = "portrait" 完成,但是当我使用 RNN2 设置屏幕时它不起作用。

任何帮助将不胜感激。

4

2 回答 2

4

我完成这项工作的唯一方法是将下面的代码添加到options每个屏幕组件的。尽管这些类型允许在堆栈和底部选项卡上指定布局,但它似乎只适用于组件本身的选项。至少在我尝试过的 2.19 和 2.23 上。

export class MyScreen extends Component<Props, State> {
  static options = (): Options => ({
    topBar: {
      visible: false,
      drawBehind: true,
    },
    statusBar: {
      style: 'light',
    },
    layout: {
      orientation: ['portrait'],
    },
  })

编辑

它也可以通过这种方式设置为默认值:

    Navigation.setDefaultOptions({
      layout: { orientation: ['portrait'] },
    })
于 2019-07-26T12:29:14.707 回答
0

我有一个带有侧边抽屉的屏幕,我通过将布局添加到中心屏幕而不是根的选项来让它在整个应用程序中工作:

Navigation.setRoot({
root: {
  sideMenu: {
    id: 'sideMenu',
    left: {
      component: {
        id: 'SideDrawer',
        name: 'yourApp.SideDrawer',
      },
      visible:true,
    },
    center: {
      stack: {
        id: 'App',
        children: [{
          component: {
            id: 'HomeScreen',
            name: 'yourApp.HomeScreen',
            options:{
              topBar: {
                leftButtons: [
                  {
                    text:'Menu',
                    id: 'sideDrawerToggle',
                    active: true,
                    visible: true,
                    display: true,
                  }
                ],
                background: {
                  color: '#000',
                  },
                title: {
                  text: 'Your App',
                  fontSize: 18,
                  color: '#fff',
                  fontFamily: 'Helvetica',
                  fontWeight: 'bold', // Available on iOS only, will ignore fontFamily style and use the iOS system fonts instead. Supported weights are: 'regular', 'bold', 'thin', 'ultraLight', 'light', 'medium', 'semibold', 'heavy' and 'black'.
                },
              },
            }
          },
        }],
        options:{
          topBar: {
            background: {
              color: '#000',
              },
            title: {
              fontSize: 18,
              color: '#fff',
              fontFamily: 'Helvetica',
              fontWeight: 'bold', // Available on iOS only, will ignore fontFamily style and use the iOS system fonts instead. Supported weights are: 'regular', 'bold', 'thin', 'ultraLight', 'light', 'medium', 'semibold', 'heavy' and 'black'.
            },
            backButton: {
              visible: true,
              color:'#fff'
            },
          },
          //add layout here
          layout: {
            orientation: ['portrait'],
          },
        }
      }
    }
  }
}});
于 2020-02-16T13:53:46.363 回答