【发布时间】:2018-06-01 23:56:48
【问题描述】:
我想在整个应用程序的大多数屏幕上阻止方向更改,但在某些屏幕上允许它发生
我尝试在 main() 中实现以下内容:
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
然后在其他屏幕 initState() 中进行以下操作
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight
]);
我还尝试删除 main 中的内容并将其放置在所有需要它的屏幕中,然后放在上面,但它仍然总是只允许设置的第一个。更新一组新的要求似乎不起作用。
【问题讨论】:
-
您是否尝试过重新启动您的应用而不是热重载?
-
我也只是在猜测,但在推送新路线之前尝试在异步方法中设置方向。可能需要在构建方法之前设置方向。并且由于该方法返回一个未来,并且您无法使 initState 异步,因此请尝试 () async { //await set orientation //push new route
-
我总是忘记热重载并不总是有效。谢谢