我想阻止我的应用程序改变其方向,并迫使布局坚持“纵向”。
大体上是这样。省道,我放:
void main(){
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
runApp(new MyApp());
}
但当我使用Android模拟器旋转按钮时,布局“遵循”新的设备方向…
我怎么解决这个问题呢?
谢谢
只需在主程序中添加以下代码行。飞镖文件。
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
并且记得导入服务。飞镖文件。下面给出了一个例子!
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
return MaterialApp(
home: Scaffold(
body: Center(child: Text("A Flutter Example!")),
),
);
}
}
导入包:颤振/服务。飞镖,然后
放上SystemChrome。Widget build()方法中的setPreferredOrientations。
例子:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
return new MaterialApp(...);
}
}
更新
如2019年10月更新的flutter文档中所述,此解决方案可能不适用于某些IOS设备。
他们建议通过在信息中设置UISupportedInterfaceOrientations来固定方向。请像这样
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
更多信息https://github.com/flutter/flutter/issues/27235#issuecomment-508995063