How to Lock Flutter App Orientation to Portrait Mode

How to Lock Flutter App Orientation to Portrait Mode

19 December 2024 Stephan Petzl Leave a comment Tech-Help

In mobile app development, there are scenarios where maintaining a consistent screen orientation is crucial for user experience. If you’re developing a Flutter application and want to ensure it always stays in portrait mode, this guide will walk you through the necessary steps to achieve that across both Android and iOS platforms.

Setting Up Orientation Lock in Flutter

To lock the orientation of your Flutter app to portrait mode, you need to modify your app’s configuration in both the Flutter framework and the native project settings. Below are the recommended methods for achieving this:

Flutter Code Implementation

The first step involves ensuring that your Flutter app’s main entry point is set up to lock the orientation. This can be accomplished by using the SystemChrome.setPreferredOrientations method. Here’s how you can implement it:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);
  runApp(MyApp());
}

  

By ensuring the Flutter binding is initialized before setting the preferred orientations, you prevent potential errors during the app’s startup process.

Native Configuration for Android

For Android devices, you need to declare the screen orientation in the AndroidManifest.xml file. Add the following attribute to your main activity:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTop"
    android:theme="@style/LaunchTheme"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustResize">
</activity>

  

Native Configuration for iOS

On iOS, the orientation lock can be set within the Info.plist file. You can manually add the supported interface orientations:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

  

Alternatively, you can configure this setting through Xcode by navigating to your project settings under the Deployment Info section.

Conclusion

By following these steps, you can successfully lock your Flutter app to portrait mode, enhancing the user experience by maintaining a consistent layout. This setup ensures that regardless of device orientation changes, your app remains in portrait mode.

Enhancing Testing with Repeato

As you configure your app, consider how testing can be streamlined. Repeato offers a no-code test automation solution for Flutter mobile apps, allowing you to efficiently create, run, and maintain automated tests. With its computer vision and AI capabilities, Repeato is designed to handle complex scenarios like orientation changes, ensuring your app’s functionality is robust across all devices.

Like this article? there’s more where that came from!