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

Flutter应用添加竖屏锁定代码后,三星手机仍无法保持PortraitUp

解决三星手机Flutter竖屏锁定失效问题

首先看你代码里的关键错误:WidgetsFlutterBinding.ensureInitialized 少了调用括号,正确写法是WidgetsFlutterBinding.ensureInitialized();,这会导致Flutter引擎初始化不完整,竖屏设置可能无法正常生效。

修正后的基础代码

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  runApp(const MyApp());
}

这里添加了async和await,确保竖屏方向设置完成后再启动应用,避免异步执行顺序问题导致的设置失效。

适配三星手机的额外步骤

  • 配置AndroidManifest.xml:在<activity>标签内新增android:screenOrientation="portrait",强制Activity固定竖屏,示例代码如下:
    <activity
      android:name=".MainActivity"
      android:exported="true"
      android:launchMode="singleTop"
      android:theme="@style/LaunchTheme"
      android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
      android:hardwareAccelerated="true"
      android:windowSoftInputMode="adjustResize"
      android:screenOrientation="portrait"> <!-- 新增该行 -->
    </activity>
    
  • 检查三星系统设置:部分三星机型自带“智能旋转”“自适应旋转”功能,需引导用户手动关闭该功能,否则系统会强制覆盖应用的竖屏设置。
  • 页面内重复设置:如果全局设置仍不生效,在主页面的initState中再次执行竖屏锁定,确保页面加载时生效:
    @override
    void initState() {
      super.initState();
      SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    }
    

内容的提问来源于stack exchange,提问作者Abdullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:55:22