I have a final user design with landscape orientation. User doesn't want/need portrait and it is needed to avoid automatic orientation change on iOS/Android. How can I achieve that?
3 Answers
SystemChrome is what you want
You can do something like in main.dart (don't forget import 'package:flutter/services.dart')
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
Unfortunately, when I do this in my application, the orientation will always be landscapeRight.
To lock the orientation for iOS you need to change the settings for the XCode project (use command 'open ios/Runner.xcworkspace' in terminal to open it)
5 Comments
abnerh69
Any import needed? Inside main()? or class MyApp? Please be a little more specific. Red underlined over SystemChrome (Undefined name) and DeviceOrientation too. Thanks.
abnerh69
Any import needed? YES! import 'package:flutter/services.dart'. Inside main()? YES. or class MyApp? MAYBE YES!. Thanks.
Nathan Bird
@abnerh69 - To lock the orientation for iOS you need to change the settings for the XCode project (use command 'open ios/Runner.xcworkspace' in terminal to open it)
Auryn
Did somebody know, why upside down doesn't work? DeviceOrientation.portraitDown, DeviceOrientation.portraitUp does not working.
Michael Nelson
Is there any way to lock the orientation of a specific screen of an app, rather than for all screens of the app?