通过程序改变方向



Flutter有一个名为setPreferredOrientations()的内置方法。根据我的理解,这个函数锁定了参数中设置的方向。相反,我只想改变方向,但不想锁定它。我的用例如下:

  • 用户可以在全屏模式下查看图像
  • 许多用户在系统设置中关闭设备旋转
  • 为了避免必须启用和禁用设备旋转以将图像旋转为横向的努力;"旋转";按钮,该按钮将为用户旋转布局(并允许他们将其向后旋转(,而不需要物理旋转设备

对此有什么想法吗?谢谢

我认为Apurv Jha的答案应该有效。我还认为它是从这里偷来的:Flutter:如何按需设置和锁定屏幕方向。

您尝试过吗:您可能想在其他地方使用initState中的代码。例如,在onPressedonTap中,小部件的参数。然后创建一个状态,指示设备是否旋转。这可能是一个简单的bool,也可能是在按下按钮时让设备旋转的某种方式。然后根据状态将方向设置为不同于状态,并更新状态。

您可以使用bool变量标志,而不是更改dispose方法中的setPreferredOrientations((参数。

每当用户单击roation按钮时,如果默认值为true,请检查变量,然后将变量设置为false,并将方向设置为横向,如果其值不等于默认值,则将方向更改为纵向。

if(flag == true)
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
else
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);

并且在dispose方法中将参数设置为默认值。

最新更新