Предпочитаемые ориентации экрана
При разработке Flutter-приложения для ОС Аврора можно установить предпочитаемую ориентацию экрана для приложения.
Разработчикам доступны два способа указания ориентации:
Вызов SystemChrome.setPreferredOrientations() из dart-кода
Метод setPreferredOrientations() принимает в качестве входных значений список из значений enum DeviceOrientation.
Доступные значения:
enum DeviceOrientation {
portraitUp,
landscapeLeft,
portraitDown,
landscapeRight
}
Это стандартный способ работы с ориентацией экрана в Flutter.
Если портируется Flutter-приложение на ОС Аврора, и в коде уже есть вызов метода
SystemChrome.setPreferredOrientations() с соответствующим параметром, то на ОС Аврора этот код
также будет работать.
Пример:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(home: const MyHomePage());
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Aurora lock orientation demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextButton(
child: const Text('Force portrait'),
onPressed: () async {
await SystemChrome.setPreferredOrientations(
<DeviceOrientation>[
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
],
);
},
),
const SizedBox(height: 16),
TextButton(
child: const Text('Force landscape'),
onPressed: () async {
await SystemChrome.setPreferredOrientations(
<DeviceOrientation>[
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
],
);
},
),
],
),
),
);
}
}
Редактирование .desktop-файла
Также поддерживается установка ориентации экрана через добавление необходимых параметров в .desktop-файл, находящийся в директории aurora/desktop. Подробнее об этом можно прочитать в документации.
Ориентация экрана, установленная через .desktop-файл, имеет приоритет над ориентацией, установленной
через SystemChrome.setPreferredOrientations().