如何在 Flutter 中使应用程序仅保持纵向模式?

Man*_*kar 5 flutter flutter-layout

我希望我的应用程序仅在设计时处于纵向模式,但应用程序默认情况下会旋转。该应用程序位于 Flutter 框架中。请帮忙。

Dan*_*ann 26

在你的lib/main.dart文件中,

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'path_to_your_app_widget.dart';

Future<void> main() async {
  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
  runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)

除了上面的答案之外,请将此代码添加到您的代码中,android/app/src/main/AndroidManifest.xml以避免从横向启动应用程序时出现特殊故障

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.orientation_lock_example">
<application ...>
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        ...
        />
        ... 
    </activity>
    ... 
</application>
Run Code Online (Sandbox Code Playgroud)

对于 iOS,您可以ios/Runner/Info.plist作为文本文件打开,然后找到密钥UISupportedInterfaceOrientation. 编辑它并只保留UIInterfaceOrientationPortrait字符串

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>
Run Code Online (Sandbox Code Playgroud)


rkd*_*r0n 1

只需在您的main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'path_to_your_app_widget.dart';

Future<void> main() async {
  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
  runApp(AppWidget());
}
Run Code Online (Sandbox Code Playgroud)