Как зафиксировать приложение в портретном режиме в Flutter?

Чтобы предотвратить изменение ориентации устройства и зафиксировать ваше Flutter-приложение в портретном режиме, нужно настроить как нативные проекты для Android и iOS, так и сам Flutter.
Шаг 1: Обновите код Flutter
В файле main.dart
можно заблокировать ориентацию в портретном режиме, добавив следующий код в функцию main
:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(MyApp());
});
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Portrait App',
home: Scaffold(
appBar: AppBar(title: Text("Только портретный режим")),
body: Center(child: Text("Это приложение работает только в портретном режиме!")),
),
);
}
}
Шаг 2: Настройте параметры Android
- Откройте файл
AndroidManifest.xml
, расположенный по путиandroid/app/src/main/AndroidManifest.xml
. - Внутри тега
<activity>
для вашей основной активности добавьте следующий атрибут, чтобы заблокировать ориентацию:<activity android:name=".MainActivity" android:label="flutter_app" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" android:theme="@style/LaunchTheme" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize">
Это зафиксирует приложение в портретном режиме для Android.
Шаг 3: Настройте параметры iOS
- Откройте файл
Info.plist
, расположенный по путиios/Runner/Info.plist
. - Добавьте следующие ключи, чтобы заблокировать ориентацию в портретном режиме:
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array>
Это зафиксирует ориентацию в портретном режиме для iOS.
Следуя этим шагам, ваше Flutter-приложение будет заблокировано в портретном режиме как на Android, так и на iOS.