In this tutorial, we will see all possible options to set the device orientation in Flutter
How to set the device Orientation in Flutter
First you need to import the services.dart package to access “SystemChrome” object.
SystemChrome : Controls specific aspects of the operating system’s graphical interface and how it interacts with the application. SystemChrome can not be instantiated and extended.
setPreferredOrientations : Specifies the set of orientations the application interface can be displayed in. The `orientation` argument is a list of [DeviceOrientation] enum values.
The empty list causes the application to defer to the operating system default.
import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations(<DeviceOrientation>[ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight ]).then((_) => runApp(MyApp())); }
Enable Landscape Orientation
import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations(<DeviceOrientation>[ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight ]).then((_) => runApp(MyApp())); }
Enable Portrait Orientation
import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations(<DeviceOrientation>[ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]).then((_) => runApp(MyApp())); }
How to get the device orientation in Flutter
MediaQuery object holds the information related to current device orientation
Orientation deviceOrientationMode = MediaQuery.of(context).orientation; if (MediaQuery.of(context).orientation == Orientation.landscape) { print("Device is in landscape mode"); } else { print("Device is in Portraint mode"); }
Comments are closed.