Я хочу установить ориентацию моего приложения по умолчанию как альбомную, например, когда я открываю игровое приложение, такое как Clash of Clans или Mobile Legend. Как я могу сделать это в флаттере?
Как перевести мое приложение в ландшафтный режим во Flutter?
comment
Добро пожаловать в СО. Не могли бы вы описать вашу проблему подробнее, пожалуйста? Например. добавив код, команды или снимки экрана, которые описывают вашу проблему. Пожалуйста, также загляните в Справочный центр, особенно для запроса и минимум примеров. Спасибо.
- person CKE   schedule 17.09.2018
Ответы (4)
Поместите этот код в MyApp()
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
]);
Как показано ниже:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
]);
return new MaterialApp();
}
}
Если вам нужен портретный режим, ознакомьтесь с этим ответом.
person
ibhavikmakwana
schedule
17.09.2018
Используя приведенное выше решение, я думаю, что в первый раз приложение откроется в портретном режиме, а затем, после изменения ориентации с портретной на альбомную, оно сохранит альбомную. Я имею в виду, что вы должны изменить портретную ориентацию в первый раз на альбомную. Приложение не будет открываться с альбомной ориентацией.
- person iPatel; 26.08.2019
Вы должны настроить iOS и Android по отдельности.
Для iOS перейдите в Xcode, выберите свой проект> Общие> Информация о развертывании> Ориентация устройства и выберите только параметры альбомной ориентации.
Для Android добавьте android:screenOrientation="landscape"
к тегу <activity>
.
person
tudorprodan
schedule
17.09.2018
Я обнаружил, что мне нужно сделать это, и что @diegoveloper предлагает заставить приложение Flutter немедленно запускаться и оставаться только в ландшафтном режиме.
- person Hahnemann; 02.01.2019
Используйте SystemChrome.setPreferredOrientations
, чтобы установить альбомный или портретный режим при запуске основного виджета.
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
config();
return MaterialApp(
title: ...
);
}
void config() {
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight
]);
}
person
diegoveloper
schedule
17.09.2018
Это сработало для меня. Убедитесь, что вы вызываете метод
config()
, желательно внутри основного метода.
- person Frank; 13.08.2019
Для Android setPreferredOrientations отлично работает.
Но для iOS мы должны использовать это решение (как для телефона, так и для iPad): https://github.com/flutter/flutter/issues/13238#issuecomment-432981342
person
Hưng Nguyễn Trần Gia
schedule
24.11.2020