如何在Flutter中更改屏幕方向
- 发表于
- flutter
移动应用程序通常会开发同时支持纵向和横向屏幕的自动识别。但是在某些特殊情况下,您可能需要设置应用程序的方向以固定方向,以便为每个组件获取适当的真实状态空间。
Flutter设置屏幕方向
首先,您必须导入服务包。
1 |
import 'package:flutter/services.dart'; |
接下来,可以通过在SystemChrome类中将值设置为setPreferredOrientations方法来设置方向。在Flutter中,应用程序入口点是主要方法。因此,您可以在main方法中调用runApp方法之前设置方向。但是如果您需要在runApp方法之前调用绑定,则必须在WidgetsFlutterBinding类中调用ensureInitialized方法。
1 2 3 4 5 6 |
void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]).then((_){ runApp(MyApp()); }); } |
仅设置横向
1 |
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight]) |
您可以设置landscapeLeft或landscapeRight使其以一种方式工作。
仅设置纵向
1 |
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitDown,DeviceOrientation.portraitUp]) |
如果将手机上下颠倒时同时将portraitUp和portraitDown都设置为方向,它将旋转应用程序。如果您不喜欢上下颠倒地工作,则可以只设置portraitUp。
Flutter动态改变屏幕方向
这与上面的相同,您只需要在单击按钮或触发某些操作时使用相同的方法即可。
1 2 3 4 |
RaisedButton( child: Text("Portrait"), onPressed: (){ SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); }) |
获取设备方向
使用Media Query在flutter应用程序中获取当前方向非常容易
1 |
MediaQuery.of(context).orientation |
这将返回Orientation对象
1 |
MediaQuery.of(context).orientation == Orientation.landscape |
通过使用此方法,您可以检查布局中的方向更改,并可以根据方向设置布局值。
原文连接:如何在Flutter中更改屏幕方向
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。