[英]Programmatically change orientation
Flutter 有一个名为setPreferredOrientations()
的内置方法。 根据我的理解,这个 function 锁定了 arguments 中设置的方向。我只想改变方向,而不是锁定它。 我的用例如下:
对此有什么想法吗? 谢谢!
Flutter有一个内置的名为setPreferredOrientations()
方法。 据我了解,该函数锁定参数中设置的方向。 相反,我只是想更改方向,但不锁定它。 我的用例如下:
有什么想法吗? 谢谢!
我认为 Apurv Jha 的回答应该有效。 我还认为它是从这里偷来的: Flutter:如何按需设置和锁定屏幕方向。
你试过这个吗:你可能想在不同的地方使用来自initState
的代码。 例如,在小部件的onPressed
或onTap
参数中。 然后创建一个 state 指示设备是否旋转。 它可能是一个简单的布尔值或某种在按下按钮时使设备旋转的方法。 然后根据 state 将方向设置为不同于 state 上的方向并更新 state。
您可以使用 bool 变量标志,而不是在 dispose 方法中更改 setPreferredOrientations() arguments。
每当用户单击旋转按钮时,如果默认值为 true,则检查变量,然后将变量设置为 false 并将方向设置为横向,如果其值不等于默认值,则将方向更改为纵向。
if(flag == true)
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
else
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
并在处理方法中将 arguments 设置为默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.