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"
添加后的样子
<activityandroid: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>