文章目录
获取当前屏幕的方向
使用MediaQuery.of(context).orientation
示例:
print("当前屏幕方向:${MediaQuery.of(context).orientation}");
实时监听屏幕方向的改变
使用OrientationBuilder包裹MaterialApp,实现对整个Flutter App的屏幕旋转监听。用法类似于LayoutBuilder。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return OrientationBuilder(
builder: (BuildContext context, Orientation orientation) {
print("当前屏幕的方向是:$orientation");
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
},
);
}
}
注意:
只有当屏幕由垂直变为水平,或者水平变为垂直,此builder才会触发。
锁定屏幕方向
使用SystemChrome.setPreferredOrientations(List<DeviceOrientation> orientations);
锁定方向,禁止App随着设备的方向改变
锁定App的方向为垂直,禁止横屏。
为了防止出现以下异常信息,需要在main方法的第一行加上WidgetsFlutterBinding.ensureInitialized()。
E/flutter (12370): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
E/flutter (12370): If you'

本文详细介绍了如何在Flutter中获取屏幕方向、实时监听变化、锁定屏幕方向并配置Android和IOS的启动图方向。包括锁定竖屏、横屏模式,以及相应的代码示例和配置步骤。
最低0.47元/天 解锁文章
533





