flutter 禁止横屏设置

1.Flutter 设置

在 main 函数 加载app前添加以下代码

SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ])

添加后的结果

void main() async {
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
   
    // 在此处添加代码
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);

  runApp(App());
}

*上面的代码 可以应对很多情况,但是在ipad 中 可能会失效。android pad 没问题。 为了避免出现问题可以在adnroid、ios 系统层面设置

Android - app-> main- > src -> AndroidManifest.xml

在activity 标签中增加

android:screenOrientation="portrait"

添加后的样子

<activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:screenOrientation="portrait"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"

            android:windowSoftInputMode="adjustResize">
.......

Ios - Runner -> Info.plist

Iphone: 在 <key>UISupportedInterfaceOrientations</key> 标签中增加

<array>
			<!-- <string>UIInterfaceOrientationPortrait</string>
			<string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string> -->
			<string>UIInterfaceOrientationPortraitUpsideDown</string>
		</array>

如果已经存在 你要注释掉 左右 标签。

Ipad <key>UISupportedInterfaceOrientations~ipad</key> 此标签 是设置ipad 屏幕转向的

<array>
			<!-- <string>UIInterfaceOrientationPortrait</string> -->
			<string>UIInterfaceOrientationPortraitUpsideDown</string>
			<!-- <string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string> -->
		</array>

以上标签,没有的添加上 已经存在的 进行修改即可。

最终样子:

<key>UISupportedInterfaceOrientations</key>
		<array>
			<!-- <string>UIInterfaceOrientationPortrait</string>
			<string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string> -->
			<string>UIInterfaceOrientationPortraitUpsideDown</string>
		</array>
		<key>UISupportedInterfaceOrientations~ipad</key>
		<array>
			<!-- <string>UIInterfaceOrientationPortrait</string> -->
			<string>UIInterfaceOrientationPortraitUpsideDown</string>
			<!-- <string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string> -->
		</array>
相关推荐
思忖小下1 小时前
深入Android架构(从线程到AIDL)_09 认识Android的主线程
android·thread
tmacfrank2 小时前
Coroutine 基础六 —— Flow
android·开发语言·kotlin
林鸿群2 小时前
Android Studio与Android Gradle 插件及Gradle工具匹配列表
android·ide·android studio
kandra7772 小时前
KMP最佳拍档-CMP
android·ios·kotlin
linweidong3 小时前
《Android最全面试题-Offer直通车》目录
android·校招·大厂·android面经·安卓面·社招·android简历
侠亦狐3 小时前
Android:文件管理:打开文件意图
android·文件管理·file·打开文件·打开方式·文件意图
drebander3 小时前
MySQL 索引优化实战 – 结合 Explain 深度解析慢查询
android·数据库·mysql
思忖小下5 小时前
深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
android·ui线程
工程师老罗6 小时前
我用AI学Android Jetpack Compose之开篇
android·android jetpack
热心市民运维小孙6 小时前
Mysql8主从复制(兼容低高版本)
android·adb