Flutter有一个名为setPreferredOrientations()
的内置方法。根据我的理解,这个函数锁定了参数中设置的方向。相反,我只想改变方向,但不想锁定它。我的用例如下:
- 用户可以在全屏模式下查看图像
- 许多用户在系统设置中关闭设备旋转
- 为了避免必须启用和禁用设备旋转以将图像旋转为横向的努力;"旋转";按钮,该按钮将为用户旋转布局(并允许他们将其向后旋转(,而不需要物理旋转设备
对此有什么想法吗?谢谢
我认为Apurv Jha的答案应该有效。我还认为它是从这里偷来的:Flutter:如何按需设置和锁定屏幕方向。
您尝试过吗:您可能想在其他地方使用initState
中的代码。例如,在onPressed
或onTap
中,小部件的参数。然后创建一个状态,指示设备是否旋转。这可能是一个简单的bool,也可能是在按下按钮时让设备旋转的某种方式。然后根据状态将方向设置为不同于状态,并更新状态。
您可以使用bool变量标志,而不是更改dispose方法中的setPreferredOrientations((参数。
每当用户单击roation按钮时,如果默认值为true,请检查变量,然后将变量设置为false,并将方向设置为横向,如果其值不等于默认值,则将方向更改为纵向。
if(flag == true)
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
else
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
并且在dispose方法中将参数设置为默认值。