当前位置: 首页 > 知识库问答 >
问题:

颤振:如何防止设备方向改变和强制画像?

商运锋
2023-03-14

我要防止我的应用改变定位,强制布局坚持“画像”。

基本上。达特,我说:

void main(){
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown
  ]);
  runApp(new MyApp());
}

但当我使用Android模拟器旋转按钮时,布局“遵循”了新设备的方向。。。

我怎样才能解决这个问题?

谢谢

共有3个答案

佴英奕
2023-03-14

调用SystemChrome.setPreferredOrientations()对我不起作用,我必须将Xcode项目中的Device Orientations更改如下:

设置屏幕方向属性为文件android/app/src/main/AndroidManifest.xml中的主要活动的肖像,如下所示:

郭彬郁
2023-03-14

@boeledi,如果你想“锁定”设备方向,并且不允许它随着用户旋转手机而改变,这很容易设置如下:,

// This did not work as requirement
void main() {
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  runApp(new MyApp());
}

您必须等待setPreferredOrientations完成,然后启动应用程序

// This will works always for lock screen Orientation.
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
    .then((_) {
      runApp(new MyApp());
    });
}
贝嘉泽
2023-03-14

导入包:颤振/服务。飞镖,然后

系统置于chrome中。在小部件构建()方法中设置PreferredOrientations

例子:

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      SystemChrome.setPreferredOrientations([
        DeviceOrientation.portraitUp,
        DeviceOrientation.portraitDown,
      ]);
      return new MaterialApp(...);
    }
  }

最新消息

如2019年10月更新的颤振文档中所述,此解决方案可能不适用于某些IOS设备。

他们建议通过在我nfo.plist中设置UISupportdInterfaceOrientations来固定方向

<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

更多信息https://github.com/flutter/flutter/issues/27235#issuecomment-508995063

 类似资料:
  • 我开始将我的代码从使用标准的Android库转换为Flatter,这样我也可以快速部署到iOS设备上,但我只是担心TextField的比例;也就是说,Flatter的文本字段的比例不同于Android的EditText。 相比之下,以下是Android的EditText: 这里是Flutter的TextField: 有没有办法让Flutter TextField看起来更像Android EditT

  • 在我的应用程序中实现RTL支持后,一位用户报告说,在阿拉伯语地区,LTR文本被强制为RTL。如下所示: 请注意文本是如何右对齐的,尽管它应该是左对齐的。 用户告诉我,这个错误只出现在 华为Y5 Prime 2018版8.1.0 和LG G3版本6.0.0 三星Galaxy J7 6.0.1版或Android Emulator(SDK 23、26、27、28)上不存在该功能。在RTL语言环境中,它可

  • 在Android中,我们有,<代码>设置。保护ANDROID\u ID。我不知道iOS的等效版本。在flutter中是否有一个flutter插件或一种方法可以为Android和IOS获取唯一的设备id?

  • 这是输出: 我试图制作一个应用程序,但当我使用时,我得到了两个按钮之间的空间 我需要一个接一个没有空间 如果使用小部件,不起作用 我尝试了,但我无法清除这些内容。 我尝试使这种类型的. 有人知道或知道这件事吗?

  • 我正在用AS3为Android制作一个Flash游戏。我想让用户知道,他通过让设备振动一秒钟来按下一个按钮。有人能给我解释一下我怎么能做到这一点吗?我需要导入特定的类吗?代码应该是什么样子? 提前感谢!

  • 是否有任何方法可以从代码中删除空安全检查,或者我现在被迫进行迁移?(工作量很大)。