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