8

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?

1

3 Answers 3

18

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)

Sign up to request clarification or add additional context in comments.

5 Comments

Any import needed? Inside main()? or class MyApp? Please be a little more specific. Red underlined over SystemChrome (Undefined name) and DeviceOrientation too. Thanks.
Any import needed? YES! import 'package:flutter/services.dart'. Inside main()? YES. or class MyApp? MAYBE YES!. Thanks.
@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)
Did somebody know, why upside down doesn't work? DeviceOrientation.portraitDown, DeviceOrientation.portraitUp does not working.
Is there any way to lock the orientation of a specific screen of an app, rather than for all screens of the app?
15
void main() {
  SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft])
    .then((_) {
      runApp(new MyApp());
    });
}

SystemChrome.setPreferredOrientations returns a Future. Wait until that’s done and then we can start our app.

Comments

3

Add this line of code in your main.dart file SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.