Ориентация устройства Flutter для одной страницы на iOSIOS

Программируем под IOS
Anonymous
Ориентация устройства Flutter для одной страницы на iOS

Сообщение Anonymous »

Я хочу показать одну страницу в своем приложении Flutter в альбомном режиме. Все остальные экраны должны отображаться в портретном режиме.

Я нашел этот фрагмент кода:

В моем файле main. дротик

Код: Выделить всё

SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]).then((_) {
runApp(new IHGApp());
});
Приложение запускается в портретном режиме. Итак, у меня есть экран, который я хочу отобразить в ландшафтном режиме, и вот код, который я там использовал:

Код: Выделить всё

@override
void initState() {
super.initState();
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
}

@override
void dispose() {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
super.dispose();
}
Это работает на Android.

Похоже, что на iOS невозможно принудительно включить ландшафтный режим для одного страница.

https://github.com/flutter/flutter/issues/13238

В этой статье я нашел вопрос для этой проблемы. Сродди упомянул, как решить проблему.

"Я решил проблему, создав небольшой канал платформы, который вызывает этот код для переключения в портретный режим прямо перед вызовом setPreferredOrientations:"

Код: Выделить всё

[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait) forKey:@"orientation"];
И код-партнер для переключения в альбомную ориентацию

Код: Выделить всё

[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationLandscapeLeft) forKey:@"orientation"];
Как я могу реализовать это в своем приложении?

Подробнее здесь: https://stackoverflow.com/questions/529 ... age-on-ios

Вернуться в «IOS»