You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 0.61.5安卓应用禁用屏幕旋转失效求助

解决方案:禁用Android屏幕旋转并避免应用重启

针对你的问题(React Native 0.61.5 + react-navigation 4.x,安卓平台旋转导致应用重启),核心问题在于你仅修改了activity-alias的配置,但实际运行的MainActivity未做对应设置,以下是修复步骤:

1. 修正AndroidManifest.xml配置

找到AndroidManifest.xml中.MainActivity的标签(不是activity-alias),添加以下关键属性:

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
    <!-- 保留原有的其他属性 -->
>
  • screenOrientation="portrait":强制锁定竖屏
  • 扩展configChanges属性,覆盖所有可能触发配置变更的场景,避免系统重启Activity

你的activity-alias配置可以保留,但必须确保MainActivity的配置正确——因为activity-alias仅作为启动入口,实际运行的是目标Activity。

2. 代码层面强制锁定方向(可选但更可靠)

安装适配RN 0.61.5的屏幕方向锁定库:

npm install react-native-orientation-locker@1.1.8 --save
# 或 yarn add react-native-orientation-locker@1.1.8

RN 0.60+支持自动链接,无需额外配置。在应用入口(如App.js)添加锁定逻辑:

类组件写法

import Orientation from 'react-native-orientation-locker';

class App extends Component {
  componentDidMount() {
    Orientation.lockToPortrait();
  }

  // 其他代码...
}

函数组件写法

import Orientation from 'react-native-orientation-locker';
import { useEffect } from 'react';

function App() {
  useEffect(() => {
    Orientation.lockToPortrait();
  }, []);

  // 其他代码...
}

3. 清理缓存并重新编译

执行以下命令确保配置生效:

# 清理安卓构建缓存
cd android && ./gradlew clean
# 返回项目根目录重启RN服务
cd .. && npx react-native start --reset-cache
# 重新安装应用
npx react-native run-android

排查额外问题

  • 检查是否有第三方库(如媒体播放器、地图)强制修改屏幕方向,需针对性禁用其旋转逻辑
  • 确认设备系统设置中未强制开启自动旋转(部分设备的系统级设置可能覆盖应用配置)

内容的提问来源于stack exchange,提问作者Taha Ateş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:28:35