- android/app/src/main/AndroidManifest.xml を以下のように修正する
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
+ android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
- ios/Runner/AppDelegate.swift で
UIInterfaceOrientationMask
の記述部分があれば削除する
- ios/Runner/Info.plist を以下のように修正する
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
SystemChrome.setPreferredOrientations
の方法では制限事項があり、特定の条件では機能しない
- iOS で
Requires full screen
を有効にしても縦画面固定にできるが、iPad のマルチタスキング機能(Slide Over や Split View)が利用できなくなるため要注意
- iOS で特定の画面の向きを固定したい場合、
UIInterfaceOrientationMask
を利用することがある